随笔分类 - AOP
摘要:切面是如何织入到目标对象中的???这大概是每个人在学习AOP的过程中都会产生的疑问吧。 当我们在调用目标方法时候,也就是通过代理对象调用目标方法的时候,比如:JdkDynamicAopProxy会通过连接点(ReflectiveMethodInvocation)来调用拦截器链中的拦截器(也就是调用通
阅读全文
摘要:说到AOP肯定会想到切面、通知、切点等等。那什么是通知呢?之前我一直以为我们所说的通知就是我们写在切面中的方法,但是随着AOP认识的加深,现在发现所谓的通知不仅仅是我们写在切面中的方法,通知方法只是通知的一部分。也就是说我们在切面中定义的通知方法会被包装成一个真正的通知对象。通知有五种类型、他们的继
阅读全文
摘要:方法拦截器的继承层次图: 这些拦截器具体长什么样?? 一、MethodBeforeAdviceInterceptor 这个拦截器只有一个属性就是前置通知。需要注意的是前置通知和返回通知的拦截器才会持有的通知的引用,也就是拦截器会有一个属性是前置通知或返回通知。其他三个既是通知又是拦截器。如:Aspe
阅读全文
摘要:这个接口的继承体系图: 一、AopProxy InvocationHandler就不说了,看看AopProxy的源码。 二、JdkDynamicAopProxy
阅读全文
摘要:Joinpoint继承层次图: 由上图可以知道的所有的接口的实现都在ReflectiveMethodInvocation这个类中。ConstructorInvocation接口只有一个方法,这个方法的实现好像是由ReflectMethodInvocation的getStaticPart()方法来实现
阅读全文
摘要:一、Pointcut 这是切点的抽象。一个切点由一个的类过滤器和一个方法匹配器组成。 将整个代码贴上来 二、ClassFilter 一个过滤器可以使一个切点或一个引入与给定的目标类的集合相匹配。可以用作一个Pointcut的一部分,或者是一个引入IntroductionAdvisor的一部分。也就是
阅读全文
摘要:一、Advisor接口 这个接口是一个通知者的顶层接口。它实现类持有一个通知(advice)和一个过滤器的引用。用过滤器来决定通知是否合适目标对象。 这个接口只有两个方法,所以将整个代码贴上来。 二、 Advisor的子接口PointcutAdvisor 这个接口几乎是所有通知者的父接口,除了引入通
阅读全文