框架学习—Spring的IOC容器之注解方式与AOP技术
2017-11-09 23:42
453 查看
1.Spring框架的IoC基于注解的方式
1.1 IoC注解方式的入门案例
1.1.1 步骤一:导入注解开发所需Jar包 引入IoC容器必须的4个Jar包; 引入Spring框架的2个日志Jar包; 引入Spring框架的AOP的jar包:spring-aop-4.2.4.RELEASE.jar;
1.1.2 步骤二:编写用于测试的类 UserService:接口 UserServiceImpl:实现类(实现内容随意)
1.1.3 步骤三:Spring配置文件中引入注解的约束:context
1.1.4 步骤四:在Spring配置文件中开启组件扫描 <context:component-scan base-package=" " /> 示例:
1.1.5 步骤五:在实现类加上注解
1.1.6 步骤六:编写测试代码
1.2 Bean管理的常用注解
1.2.1 @Component:组件(作用于类上),将被修饰的类归入Spring容器的管理。 1.2.2 @Component的衍生注解(目前功能一样): @Controller:作用于控制层 @Service:作用于业务层 @Repository:作用于持久层 1.2.3 属性注入的注解(使用注解注入属性不用提供setter) 对于普通类型的属性,使用@Value; 对于自定义对象的属性,使用@Autowired(默认按类型自动装配),搭配@Qualifier(强制使用组件名称注入); @Resource 由Java提供的注解,使用name属性,相当于@Autowired和Qualifier的搭配。 示例:
1.3 Bean的作用范围和生命周期的注解
1.3.1 Bean的作用范围注解 @Scope 作用在类上; 取值: singleton:单例,默认值。 prototype:多例。 1.3.2 Bean的生命周期的配置 @PostConstruct:相当于init-method。 @PreDestroy:相当于destroy-method。
2.Spring框架整合JUnit单元测试
2.1 步骤一:配置JUnit的环境
2.2 步骤二:在测试类上添加注解
3.AOP技术
3.1 AOP的概述
3.1.1 什么是AOP技术 * Aspect Oriented Programming,面向切面编程。 * AOP是一种编程范式,指导开发者如何组织程序结构。 * AOP最早由AOP联盟组织提出,制定了一套规范,Spring引入了AOP思想,遵守了AOP联盟的规范。 * 通过预编译方式和运行期【动态代理】实现程序功能统一维护的一种技术。 * AOP是OOP的延续,是函数时编程的一种衍生泛型。 * 利用AOP可以对业务逻辑的各个部分进行隔离,降低耦合度。 * AOP采取横向抽取机制,
3.2 AOP的底层实现
3.2.1 基于JDK的动态代理 面向接口,只有实现了某个接口的类才能生成代理对象。 3.2.2 基于CGLIB的动态代理 不需要实现接口,产生这个类的子类作为代理对象。
3.3 动态代理的代码实现
3.3.1 JDK的动态代理(使用Proxy类)
3.3.2 CGLIB动态代理
4.基于AspectJ的AOP的开发
4.1 AOP的相关术语
4.1.1 Joinpoint:连接点,指被拦截到的点。在Spring中,这些点指的是方法,Spring只支持方法类型的连接点。 4.1.2 Pointcut:切入点,指对哪些Jointpoint进行拦截的定义。 4.1.3 Advice:通知/增强,拦截到Joinpoint之后要做的事情就是通知,通知分为前置通知、后置通知、最终通知、异常通知、环绕通知。 4.1.4 Introduction:引介,是一种特殊的通知,在不修改类代码的前提下,Introduction可以在运行期为类动态地添加一些方法或field。 4.1.5 Target:目标对象,代理的目标对象。 4.1.6 Weaving:织入,是指把增强应用到目标对象来创建新的代理对象的过程。 4.1.7 Proxy:代理,一个类被AOP织入增强后,就产生一个结果代理类。 4.1.8 Aspect:切面,是切入点和通知的结合。
4.2 AspectJ的XML方式完成AOP开发案例
4.2.1 步骤一:创建JavaWeb项目,引入Jar包 先引入Spring框架开发的6个(4+2)基本Jar包(请看1.1.1); 再引入Spring框架的2个传统AOP开发Jar包; 最后引入Spring框架的2个aspectJ的开发Jar包。
4.2.2 步骤二:创建Spring配置文件,引入具体的AOP的schema约束
4.2.3 步骤三:创建包结构,编写接口与实现类 4.2.4 步骤四:将目标类归入Spring的IoC容器管理 4.2.5 步骤五:定义切面类
4.2.6 步骤六:将切面类归入Spring的IoC容器管理
4.2.7 步骤七:在配置文件中AOP的配置
4.2.8 步骤八:测试代码
4.3 切入点表达式
示例:
4.4 AOP的通知类型
4.4.1 前置通知 * 在目标类的方法执行之前执行。 * 配置文件信息:<aop:after method="" pointcut=""/> * 应用:可以对方法的参数来做校验 4.4.2 最终通知 * 在目标类的方法执行之后执行,如果程序出现了异常,最终通知也会执行。 * 在配置文件中编写具体的配置:<aop:after method="" pointcut=""/> * 应用:例如像释放资源 4.4.3 后置通知 * 方法正常执行后的通知。 * 在配置文件中编写具体的配置:<aop:after-returning method="" pointcut=""/> * 应用:可以修改方法的返回值 4.4.4 异常抛出通知 * 在抛出异常后通知 * 在配置文件中编写具体的配置:<aop:after-throwing method="" pointcut =""/> * 应用:包装异常的信息 4.4.5 环绕通知 * 方法的执行前后执行。 * 在配置文件中编写具体的配置:<aop:around method="" pointcut =" "/> * 要注意:目标的方法默认不执行,需要使用ProceedingJoinPoint对来让目标对象的方法执行。
示例:
相关文章推荐
- Spring学习一:IOC(控制反转)和AOP(面向切面)的xml配置和注解方式
- 框架学习—Spring的IoC容器之XML方式
- Spring学习4-面向切面(AOP)之aspectj注解方式
- Spring 框架简介(Spring AOP 和 IOC 容器入门)
- ITCAST视频-Spring学习笔记(使用Spring的注解方式实现AOP的细节)
- Spring 的IOC容器之注解的方式
- spring中IOC容器注解方式详细解析
- Spring学习笔记(14)----使用Spring的注解方式实现AOP
- JAVA 开发平台的技术和框架(三)IOC容器 Spring
- Spring学习笔记(三)Spring注解方式实现AOP
- SSH深度历险(十) AOP原理及相关概念学习+AspectJ注解方式配置spring AOP
- 第36天(就业班) spring引入、专业术语、spring六大模块、bean创建对象的细节、IOC容器、对象依赖关系、自动装配、注解方式
- spring学习(四):AOP注解方式
- spring学习笔记7--使用spring进行面向切面的(AOP)编程(1)注解方式实现
- spring boot框架学习学前掌握之重要注解(2)-通过java的配置方式进行配置spring
- Spring 框架学习(三):IoC 容器
- Spring4学习笔记-AOP(基于注解的方式)
- Spring4学习笔记-AOP(基于注解的方式)
- ######【spring属性注入(Ioc的DI)总结】:注解方式属性注入,属性名任意.=for理解:Aop注入代理对象时,注入被增强类对象时,属性名为proxy(自定义)。
- Spring(十一)使用Spring的注解方式实现面向切面技术AOP