发表于: 2017-11-12 20:29:01
1 939
今天完成的事
陪老大爬山
准备了点springAOP小课堂的知识~
Spring 通过XML配置文件形式来AOP 来实现前置,环绕,异常通知
1. Spring AOP 前置通知 XML配置使用案例
2. Spring AOP 环绕通知 XML配置使用案例
3. Spring AOP 抛出异常后通知 XML配置使用案例
4. Spring AOP 返回后通知 XML配置使用案例
5. Spring AOP 后通知 XML配置使用案例
二、Spring 通过注解形式来AOP 来实现前置,环绕,异常通知
1. Spring AOP 前置通知 注解使用案例
2. Spring AOP 环绕通知 注解使用案例
3. Spring AOP 抛出异常后通知 注解使用案例
4. Spring AOP 返回后通知 注解使用案例
5. Spring AOP 后通知 注解使用案例
本文作者:souvc
本文出处:http://www.cnblogs.com/liuhongfeng/p/4736947.html
AOP是Aspect Oriented Programming的缩写,意思是面向方面编程,AOP实际是GoF设计模式的延续
关于Spring AOP的一些术语
- 切面(Aspect):在Spring AOP中,切面可以使用通用类或者在普通类中以@Aspect 注解(@AspectJ风格)来实现
- 连接点(Joinpoint):在Spring AOP中一个连接点代表一个方法的执行
- 通知(Advice):在切面的某个特定的连接点(Joinpoint)上执行的动作。通知有各种类型,其中包括"around"、"before”和"after"等通知。许多AOP框架,包括Spring,都是以拦截器做通知模型, 并维护一个以连接点为中心的拦截器链
- 切入点(Pointcut):定义出一个或一组方法,当执行这些方法时可产生通知,Spring缺省使用AspectJ切入点语法。
通知类型
- 前置通知(@Before):在某连接点(join point)之前执行的通知,但这个通知不能阻止连接点前的执行(除非它抛出一个异常)
- 返回后通知(@AfterReturning):在某连接点(join point)正常完成后执行的通知:例如,一个方法没有抛出任何异常,正常返回
- 抛出异常后通知(@AfterThrowing):方法抛出异常退出时执行的通知
- 后通知(@After):当某连接点退出的时候执行的通知(不论是正常返回还是异常退出)
- 环绕通知(@Around):包围一个连接点(join point)的通知,如方法调用。这是最强大的一种通知类型,环绕通知可以在方法调用前后完成自定义的行为,它也会选择是否继续执行连接点或直接返回它们自己的返回值或抛出异常来结束执行
Spring 实现AOP是依赖JDK动态代理和CGLIB代理实现的。以下是JDK动态代理和CGLIB代理简单介绍
JDK动态代理:其代理对象必须是某个接口的实现,它是通过在运行期间创建一个接口的实现类来完成对目标对象的代理。
CGLIB代理:实现原理类似于JDK动态代理,只是它在运行期间生成的代理对象是针对目标类扩展的子类。CGLIB是高效的代码生成包,底层是依靠ASM(开源的java字节码编辑类库)操作字节码实现的,性能比JDK强。
在Spring中,有接口时将采用JDK的方式实现proxy代理对象,当没有接口时,将采用cglib中的方式实现prixy代理对象。
遇到的问题
太久不运动,爬山爬的脑壳疼。
明天要完成的事
开始任务4
评论