摘要: 阅读全文
posted @ 2019-05-05 17:33 钓鱼翁 阅读(227) 评论(0) 推荐(0) 编辑
摘要: 切面是如何织入到目标对象中的???这大概是每个人在学习AOP的过程中都会产生的疑问吧。 当我们在调用目标方法时候,也就是通过代理对象调用目标方法的时候,比如:JdkDynamicAopProxy会通过连接点(ReflectiveMethodInvocation)来调用拦截器链中的拦截器(也就是调用通 阅读全文
posted @ 2018-01-10 14:25 钓鱼翁 阅读(2002) 评论(0) 推荐(0) 编辑
摘要: 说到AOP肯定会想到切面、通知、切点等等。那什么是通知呢?之前我一直以为我们所说的通知就是我们写在切面中的方法,但是随着AOP认识的加深,现在发现所谓的通知不仅仅是我们写在切面中的方法,通知方法只是通知的一部分。也就是说我们在切面中定义的通知方法会被包装成一个真正的通知对象。通知有五种类型、他们的继 阅读全文
posted @ 2018-01-08 15:33 钓鱼翁 阅读(705) 评论(0) 推荐(0) 编辑
摘要: 方法拦截器的继承层次图: 这些拦截器具体长什么样?? 一、MethodBeforeAdviceInterceptor 这个拦截器只有一个属性就是前置通知。需要注意的是前置通知和返回通知的拦截器才会持有的通知的引用,也就是拦截器会有一个属性是前置通知或返回通知。其他三个既是通知又是拦截器。如:Aspe 阅读全文
posted @ 2018-01-08 12:27 钓鱼翁 阅读(2948) 评论(0) 推荐(0) 编辑
摘要: 这个接口的继承体系图: 一、AopProxy InvocationHandler就不说了,看看AopProxy的源码。 二、JdkDynamicAopProxy 阅读全文
posted @ 2018-01-07 23:13 钓鱼翁 阅读(1027) 评论(0) 推荐(0) 编辑
摘要: Joinpoint继承层次图: 由上图可以知道的所有的接口的实现都在ReflectiveMethodInvocation这个类中。ConstructorInvocation接口只有一个方法,这个方法的实现好像是由ReflectMethodInvocation的getStaticPart()方法来实现 阅读全文
posted @ 2018-01-07 01:14 钓鱼翁 阅读(1689) 评论(1) 推荐(2) 编辑
摘要: 一、Pointcut 这是切点的抽象。一个切点由一个的类过滤器和一个方法匹配器组成。 将整个代码贴上来 二、ClassFilter 一个过滤器可以使一个切点或一个引入与给定的目标类的集合相匹配。可以用作一个Pointcut的一部分,或者是一个引入IntroductionAdvisor的一部分。也就是 阅读全文
posted @ 2018-01-06 11:45 钓鱼翁 阅读(336) 评论(0) 推荐(0) 编辑
摘要: 一、Advisor接口 这个接口是一个通知者的顶层接口。它实现类持有一个通知(advice)和一个过滤器的引用。用过滤器来决定通知是否合适目标对象。 这个接口只有两个方法,所以将整个代码贴上来。 二、 Advisor的子接口PointcutAdvisor 这个接口几乎是所有通知者的父接口,除了引入通 阅读全文
posted @ 2018-01-06 10:45 钓鱼翁 阅读(459) 评论(0) 推荐(0) 编辑
摘要: 这个是Resource接口的继承体系图。这个接口就是一个资源描述符,抽象的描述了类路径下或者是文件系统中的文件。比如一个Resource接口的实现类的一个实例就代表一个的资源,比如用一个Resource接口的实例代表applicationContext.xml文件(我知道接口不能实例化)。 图太大可 阅读全文
posted @ 2018-01-04 00:51 钓鱼翁 阅读(358) 评论(0) 推荐(0) 编辑
摘要: Spring中AbstractApplicationContext抽象类的refresh()方法是用来刷新Spring的应用上下文的。下面Spring的应用上下文我都叫作context 这个方法的每一行代码都很重要。已经在代码中标上序号,下面会一句一句来解释。 一、prePareRefresh() 阅读全文
posted @ 2018-01-03 16:32 钓鱼翁 阅读(6886) 评论(0) 推荐(1) 编辑