![](https://img-blog.csdnimg.cn/20190717135449543.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
Spring AOP 分析
基于源代码分析Spring AOP实现技术
安迪源文
小步快走
展开
-
Spring AOP : APC 自动代理创建器 AbstractAutoProxyCreator
概述AbstractAdvisorAutoProxyCreator是Spring AOP提供的一个SmartInstantiationAwareBeanPostProcessor,它的作用是将符合条件的bean包装成代理对象,包装成代理对象的过程会在bean实例外面包裹相应的AOP拦截器。调用者对该bean的方法调用,其实首先发生在相应的代理上,经过层层包裹的AOP拦截器之后,才真正执行目标be...原创 2019-07-17 11:44:28 · 1550 阅读 · 0 评论 -
Spring AOP : 工具类 BeanFactoryAdvisorRetrievalHelper
概述BeanFactoryAdvisorRetrievalHelper是Spring AOP框架提供的一个工具类,从整个IoC容器范围获取所有的Spring Advisor bean组件,用于辅助自动代理机制。该工具类的核心逻辑在于其方法List<Advisor> findAdvisorBeans(),该方法从容器(包含祖先容器)中找到并返回所有类型为org.springframe...原创 2019-07-17 15:25:58 · 548 阅读 · 0 评论 -
Spring AOP 易混概念的区别和联系
AOP代理机制对象创建工厂 : 根据配置决定使用哪种AOP代理机制 : JDK Dynamic AOP Proxy 还是 CGLib AOP ProxyAopProxyFactory 接口DefaultAopProxyFactory 类Spring AOP框架设计AopProxyFactory用于生成AopProxy,DefaultAopProxyFactory是Spring...原创 2019-07-14 18:07:10 · 311 阅读 · 0 评论 -
Spring Boot 自动配置 : AopAutoConfiguration
概述自动配置AopAutoConfiguration类的主要任务是根据配置参数使用注解@EnableAspectJAutoProxy。该自动配置类通过注解声明了自己生效的条件是 :以下类必须存在于classpath :EnableAspectJAutoProxyAspectAdviceAnnotatedElement配置参数spring.aop.auto值不为false...原创 2019-07-05 15:19:43 · 4679 阅读 · 2 评论 -
Spring : @EnableAsync 的工作原理
概述AsyncAnnotationBeanPostProcessor是一个BeanPostProcessor,继承自AbstractBeanFactoryAwareAdvisingPostProcessor,它持有一个AsyncAnnotationAdvisor对象,在每个bean后置处理阶段检测该bean是否符合包裹该AsyncAnnotationAdvisor的条件,如果符合,则包裹该Adv...原创 2019-07-13 22:39:04 · 1550 阅读 · 0 评论 -
Spring BeanPostProcessor 抽象基类 -- AbstractBeanFactoryAwareAdvisingPostProcessor
概述抽象类AbstractBeanFactoryAwareAdvisingPostProcessor及其父类AbstractAdvisingBeanPostProcessor定义了这样一类BeanPostProcessor :拥有一个Advisor对每个bean进行后置处理,如果该bean符合包裹自己所拥有的Advisor的条件,则将该Advisor包裹该bean。这里将bean和Adv...原创 2019-07-13 22:25:42 · 2181 阅读 · 0 评论 -
Springboot应用中@EntityScan和@EnableJpaRepositories的用法
在Springboot应用开发中使用JPA时,通常在主应用程序所在包或者其子包的某个位置定义我们的Entity和Repository,这样基于Springboot的自动配置,无需额外配置我们定义的Entity和Repository即可被发现和使用。但有的时候我们需要定义Entity和Repository不在应用程序所在包及其子包,那么这时候就需要使用@EntityScan和@EnableJpaRe...原创 2018-11-15 10:17:54 · 43834 阅读 · 5 评论 -
Spring BeanPostProcessor : AnnotationAwareAspectJAutoProxyCreator
概述BeanPostProcessor AnnotationAwareAspectJAutoProxyCreator是AspectJAwareAdvisorAutoProxyCreator的子类,用于处理当前应用上下文中所有使用AspectJ注解的切面和所有Spring Advisor。所有AspectJ注解的类都会自动被识别,并且如果Spring AOP基于代理的模型能够应用它们的话就会应用...原创 2019-01-17 18:11:35 · 1245 阅读 · 1 评论 -
Spring AOP 内部工具类 : BeanFactoryAspectJAdvisorsBuilder
概述BeanFactoryAspectJAdvisorsBuilder是一个Spring AOP内部工具类,该工具类用来从bean容器,也就是BeanFactory中获取所有使用了@AspectJ注解的bean,最终用于自动代理机制(auto-proxying)。跟该工具类完成类似工作的另外一个工具类是BeanFactoryAdvisorRetrievalHelper,只不过BeanFact...原创 2019-01-14 18:40:28 · 1124 阅读 · 0 评论 -
Spring AOP 内部工具类 : BeanFactoryAdvisorRetrievalHelper
概述BeanFactoryAdvisorRetrievalHelper是一个Spring AOP内部工具类,该工具类用来从bean容器,也就是BeanFactory中获取所有Spring顾问Advisor bean。这里的 Spring Advisor bean指的是实现了接口org.springframework.aop.Advisor的bean。该类具体的使用可以参考Abstract...原创 2019-01-14 13:15:09 · 658 阅读 · 0 评论