摘要:
spring中的Advice按照其自身实例(instance)能否自目标对象类的所有实例中共享这一标准,可以划分成为两大类: 1.pre-class:该类型的Advice的实例可以再目标对象类的说有实例之间共享,这些Advice不会保存类状态和信息,这类Advice有: 1.before Advice: 只需要实现 aop.MethodBeforeAdvice接口。 2.ThrowsAdvice:以接口定义aop.ThrowsAdvice对应通常Aop概念中的After Throwing Advice 3.After Returning ... 阅读全文
摘要:
Joinpoint:在SpringAoP中,只支持Method Execution (方法执行)的Joinpoint,对于类型中的属性,我们可以通过对setter,getter方法的拦截从而达到相同的效果。 Pointcut: spring AoP以接口定义 aop.PointCut作为其AoP框架中说有 PointCut的最顶层抽象,该接口提供了两个方法用来帮助捕捉JoinPoint,并提供了一个TruePointcut类型实例。PointCut提供了三个方法:public interface Pointcut { /** * Return the ClassFilter... 阅读全文
摘要:
spring AoP属于第二代AoP,采用动态代理机制和字节码生成技术实现,在运行期间为目标对象生成一个代理对象,而将横切逻辑织入到这个代理对象中,系统最终使用的是织入了的横切逻辑的代理对象。通过代理模式(在另外一篇文章中讲述)通过动态字节码生成:实现原理:对目标对象进行集成扩展,为其生成相应的子类,而子类可以通过覆写来扩展父类的行为,只要将横切逻辑的实现放到子类中,然后让系统使用扩展后的目标对象的子类,就可以达到与代理模式相同的效果了。下面是一个简单的实例:public class CglibRequestCtrlCallback implements MethodIntercept... 阅读全文