【济南校区】JavaEE就业笔记串讲---Spring_part2
Spring的bean管理(注解) 1 注解:代码中特殊标记,使用注解可以使用类、方法、属性上面,使用注解实现功能 2 写法: @注解名称(属性=属性值) 使用注解创建对象 第一步导入jar包 (1)导入spring基本的jar包 (2)使用注解方式导入aop的jar包 第二步创建类,创建方法 第三步创建spring配置文件 (1)在xml配置文件中引入约束 (2)在spring配置文件中,开启注解扫描 第四步在创建对象所在的类上面使用注解实现 创建对象的注解的总结 1 创建对象的注解有四个: (1)@Component (2)@Repository 用于对DAO实现类进行标注 (3)@Service 用于对Service实现类进行标注 (4)@Controller 用于对Controller实现类进行标注 上面四个注解都可以创建对象,目前这四个注解功能是一样的 Spring为了后续扩展 2 有注解,设置创建对象是单例或者多实例 使用注解注入属性(对象) 1 创建service类,创建dao类 (1)在service里面调用dao的方法 (2)在service里面得到dao对象 2 使用注解完成注入操作 第一步在service里面定义dao类型属性 第二步进行注解方式实现注入 (1)创建dao对象和service对象 (2)在service里面注入dao对象 - 在service里面dao属性上面使用注解实现 ** 使用注解@Autowired ** 使用注解@Resource AOP概述 1 aop:面向切面编程, (1)扩展功能不是通过修改源代码实现 2 aop采用横向抽取机制实现 (1)之前web阶段,写过baseservlet,采用不是横向机制,而是纵向机制:servlet继承baseservlet实现 (2)使用动态代理增强类里面的方法 3 aop底层使用动态代理实现 (1)有接口情况:创建接口实现类代理对象 (2)没有接口情况:创建增强方法所在类的子类代理对象 AOP术语 Joinpoint(连接点):所谓连接点是指那些被拦截到的点。在spring中,这些点指的是方法,因为spring只支持方法类型的连接点. Pointcut(切入点): 实际增强的方法 Advice(通知/增强):所谓通知是指拦截到Joinpoint之后所要做的事情就是通知. 通知分为前置通知,后置通知,异常通知,最终通知,环绕通知(切面要完成的功能) Aspect(切面): 是切入点和通知的结合 (1)把具体的逻辑用到具体的方法上面 Target(目标对象):代理的目标对象(要增强的类) Weaving(织入):是把增强应用到目标的过程. 把advice 应用到 target的过程 Proxy(代理):一个类被AOP织入增强后,就产生一个结果代理类 Introduction(引介):引介是一种特殊的通知在不修改类代码的前提下, Introduction可以在运行期为类动态地添加一些方法或Field. Spring的aop操作 1 在spring中使用aspectj实现aop操作 (1)aspectj不是spring一部分,单独面向切面框架,经常和spring一起使用进行aop (2)spring2.0开始使用aspectj实现aop (3)使用aspectj导入相关的jar包 2 使用aspectj实现aop操作两种方式 (1)基于aspectj的xml配置文件 (2)基于aspectj的注解 基于aspectj的xml方式 Aspej表达式 1 使用aspectj的操作,基于 表达式 形式进行切入点 配置 execution(<访问修饰符>?<返回类型><方法名>(<参数>)<异常>) (1)对User类里面的add方法 - 第一个参数: * 表示类里面方法public、private都增强 - 添加空格,第二个参数:增强的方法所在类全路径 --- 类的全路径后面增强的方法名称 execution(* cn.itcast.User.add(..)) (2)对User类里面的所有方法 execution(* cn.itcast.User.*(..)) (3)对所有类里面的所有的方法 execution(* *.*(..)) 具体操作(xml) 第一步导入jar包 (1) 导入基本的jar包 (2) 导入aop和aspectj的jar包 第二步创建类,创建方法 (1)创建增强的类,增强的方法 在 Book类里面add方法之前执行MyBook类里面before1的方法 第三步在spring配置文件中进行配置 (1)在spring配置文件中引入aop约束 (2)配置两个类对象 (3)配置aop操作 - 配置切入点 - 配置切面 演示其他通知类型 (1)环绕通知 Log4j操作 1 使用log4j,可以查看到当前运行程序中对象创建过程,可以看到更详细的信息 (1)使用在调试程序中 2 使用 (1)导入log4j的jar包 (2)复制log4j配置文件,复制到src下面 3 设置日志的输出级别 (1)info、debug、error Ioc配置文件和注解混合使用 1 使用配置文件方式创建对象 2 使用注解方式注入属性 3 具体例子 (1)创建对象,使用配置文件实现 (2)在service里面注入dao对象,使用注解 演示spring整合web项目 1 action调用service,service调用到 (1)action多实例对象,每次访问action都创建对象 功能可以实现,但是性能很低 2 解决方案: (1)使用ServletContext对象 (2)监听器 在服务器启动时候创建ServletContext对象,使用监听器可以知道ServletContext对象在什么时候创建,加载配置文件,创建配置的对象,把创建对象放到servletcontext里面 3 在spring里面不需要我们写这些操作,进行封装 (1)在spring封装了一个监听器,只需要配置监听器就可以了 4 使用spring里面的监听器时候,需要导入jar包,这个jar包用于整合web项目 5 启动服务器,出现异常 (1)服务器启动时候,默认到WEB-INF下面找名称是applicationContext配置文件 6 手动配置找哪个spring配置文件
|