01 2018 档案
摘要:切面是如何织入到目标对象中的???这大概是每个人在学习AOP的过程中都会产生的疑问吧。 当我们在调用目标方法时候,也就是通过代理对象调用目标方法的时候,比如:JdkDynamicAopProxy会通过连接点(ReflectiveMethodInvocation)来调用拦截器链中的拦截器(也就是调用通
阅读全文
摘要:说到AOP肯定会想到切面、通知、切点等等。那什么是通知呢?之前我一直以为我们所说的通知就是我们写在切面中的方法,但是随着AOP认识的加深,现在发现所谓的通知不仅仅是我们写在切面中的方法,通知方法只是通知的一部分。也就是说我们在切面中定义的通知方法会被包装成一个真正的通知对象。通知有五种类型、他们的继
阅读全文
摘要:方法拦截器的继承层次图: 这些拦截器具体长什么样?? 一、MethodBeforeAdviceInterceptor 这个拦截器只有一个属性就是前置通知。需要注意的是前置通知和返回通知的拦截器才会持有的通知的引用,也就是拦截器会有一个属性是前置通知或返回通知。其他三个既是通知又是拦截器。如:Aspe
阅读全文
摘要:这个接口的继承体系图: 一、AopProxy InvocationHandler就不说了,看看AopProxy的源码。 二、JdkDynamicAopProxy
阅读全文
摘要:Joinpoint继承层次图: 由上图可以知道的所有的接口的实现都在ReflectiveMethodInvocation这个类中。ConstructorInvocation接口只有一个方法,这个方法的实现好像是由ReflectMethodInvocation的getStaticPart()方法来实现
阅读全文
摘要:一、Pointcut 这是切点的抽象。一个切点由一个的类过滤器和一个方法匹配器组成。 将整个代码贴上来 二、ClassFilter 一个过滤器可以使一个切点或一个引入与给定的目标类的集合相匹配。可以用作一个Pointcut的一部分,或者是一个引入IntroductionAdvisor的一部分。也就是
阅读全文
摘要:一、Advisor接口 这个接口是一个通知者的顶层接口。它实现类持有一个通知(advice)和一个过滤器的引用。用过滤器来决定通知是否合适目标对象。 这个接口只有两个方法,所以将整个代码贴上来。 二、 Advisor的子接口PointcutAdvisor 这个接口几乎是所有通知者的父接口,除了引入通
阅读全文
摘要:这个是Resource接口的继承体系图。这个接口就是一个资源描述符,抽象的描述了类路径下或者是文件系统中的文件。比如一个Resource接口的实现类的一个实例就代表一个的资源,比如用一个Resource接口的实例代表applicationContext.xml文件(我知道接口不能实例化)。 图太大可
阅读全文
摘要:Spring中AbstractApplicationContext抽象类的refresh()方法是用来刷新Spring的应用上下文的。下面Spring的应用上下文我都叫作context 这个方法的每一行代码都很重要。已经在代码中标上序号,下面会一句一句来解释。 一、prePareRefresh()
阅读全文
摘要:一、这个类的属性
阅读全文
摘要:ApplicationEventMulticaster 这个接口可以管理很多个ApplicationListener对象。并将事件发布给这些监听器。 ApplicationEventPublisher接口是ApplicationContext接口的父接口,这个接口也就是ApplicationCont
阅读全文
摘要:ApplicationEventPublisher是ApplicationContext的父接口之一。这接口的作用是:Interface that encapsulates event publication functionality. 功能就是发布事件,也就是把某个事件告诉的所有与这个事件相关的
阅读全文
摘要:这个对另一篇章Bean Definition从加载、解析、处理、注册到BeanFactory的过程的扩展。 Spring框架中BeanDefinition的继承结构。 Spring框架中BeanDefinition的继承结构。在创建BeanDefinition时,可以生成RootBeanDefini
阅读全文
摘要:为了弄清楚Bean是怎么来的,花费了大把功夫,现在要把Bean Definition的加载、解析、处理、注册到bean工厂的过程记下来。这只是bean definition 的加载、解析、处理、注册过程中的一种。 好记性不如烂笔头。 首先我已经知道bean definition 存在了哪里:它就存在
阅读全文
摘要:bean的定义部分相关的一些类的继承结构图 阅读以上的接口和类并且的做下笔记 AttributeAccessor: 主要的几个方法的作用就是设置属性,获取属性,移除属性,判断是否含有属性,获取所有属性的名字的数组。 AttributeAccessorSupport: 实现了AttributeAcce
阅读全文