![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Spring AOP
安迪源文
小步快走
展开
-
Spring BeanPostProcessor : AnnotationAwareAspectJAutoProxyCreator
概述BeanPostProcessor AnnotationAwareAspectJAutoProxyCreator是AspectJAwareAdvisorAutoProxyCreator的子类,用于处理当前应用上下文中所有使用AspectJ注解的切面和所有Spring Advisor。所有AspectJ注解的类都会自动被识别,并且如果Spring AOP基于代理的模型能够应用它们的话就会应用...原创 2019-01-17 18:11:35 · 1251 阅读 · 1 评论 -
Spring Context : MethodValidationInterceptor
概述MethodValidationInterceptor是Spring Context提供的一个MethodInterceptor实现,它使用一个指定的JSR-303验证器对使用了相应JSR-303验证注解的方法参数或者返回值做验证。例子 :// 注意,同时所属类上要使用 Spring 注解 @Validatedpublic @NotNull Object myValidMethod(@N...原创 2019-08-19 09:50:21 · 1098 阅读 · 0 评论 -
Spring AOP : APC 自动代理创建器 DefaultAdvisorAutoProxyCreator
概述DefaultAdvisorAutoProxyCreator是Spring AOP内置的一个APC,它在容器每个bean初始化的后置处理阶段,从容器中找到所有的Spring Advisor bean,然后检测这些Advisor bean是否需要包裹到容器正在初始化的bean上。DefaultAdvisorAutoProxyCreator要用的拦截器都来自于容器中匹配的Spring Advi...原创 2019-07-25 11:06:37 · 1200 阅读 · 0 评论 -
Spring AOP : APC 自动代理创建器 BeanNameAutoProxyCreator
概述BeanNameAutoProxyCreator是Spring AOP内置的一个APC,它根据bean名称匹配需要创建代理对象的bean。使用者需要为BeanNameAutoProxyCreator指定需要被代理的bean的名称通配符,比如myBean,tx*这样的字符串,然后BeanNameAutoProxyCreator在工作时会确保容器中符合这些名称通配符的bean被创建代理。Bea...原创 2019-07-25 09:27:22 · 680 阅读 · 0 评论 -
Spring : AbstractAdvisorAutoProxyCreator
概述APC(Auto Proxy Creator)抽象基类。从容器中仅获取Spring Advisor bean组件作为所要使用的AOP Advice来源,而不使用@AspectJ注解定义的AOP Advice bean组件作为来源。继承自AbstractAutoProxyCreator,检测bean是否符合自动代理的条件,以及创建相应的自动代理的逻辑由此基类实现。AbstractAdvis...原创 2019-07-20 23:02:40 · 490 阅读 · 0 评论 -
Spring AOP : 自动代理创建机制 (APC)
有时候我们会遇到这样的类似的bean定义的情况: 这些bean需要类似的代理行为,比如都需要被同样的一组拦截器包裹 。如果需要这样定义的bean数量很大,那么我们需要写大量重复度很高的xml或者配置代码来定义这些bean,这显然是个可以优化解决的问题。为此,Spring AOP提供了自动代理创建机制。一个APC其实是一个SmartInstantiationAwareBeanPostProcesso...原创 2019-07-17 18:17:29 · 782 阅读 · 0 评论 -
Spring AOP: APC 注册器 AspectJAutoProxyRegistrar
概述AspectJAutoProxyRegistrar是一个ImportBeanDefinitionRegistrar,它会向容器注册一个自动代理创建器auto proxy creator,实现类使用AnnotationAwareAspectJAutoProxyCreator。AspectJAutoProxyRegistrar核心的逻辑在于其方法registerBeanDefinitions。...原创 2019-07-17 17:40:04 · 1422 阅读 · 0 评论 -
Spring AOP: APC 注册器 AutoProxyRegistrar
概述AutoProxyRegistrar是一个ImportBeanDefinitionRegistrar,它会检测导入者类上的某个注解是否带有属性mode和proxyTargetClass,如果检测到这些属性,在mode为PROXY时,它会向容器注册一个自动代理创建器auto proxy creator。AutoProxyRegistrar可以被某个配置类这么使用 :@Import(Auto...原创 2019-07-16 13:41:47 · 3244 阅读 · 2 评论 -
Spring Boot 自动配置 : ValidationAutoConfiguration
概述ValidationAutoConfiguration是Spring Boot对应用中验证机制的自动配置。它主要向容器贡献了两个bean :LocalValidatorFactoryBean defaultValidator这其实就是一般意义上所说的Validator bean仅在容器中不存在类型为Validator的bean时才定义,也就是说如果开发人员自己定义了Validat...原创 2019-07-19 17:13:56 · 3801 阅读 · 0 评论 -
Spring AOP : APC 自动代理创建器 AbstractAutoProxyCreator
概述AbstractAdvisorAutoProxyCreator是Spring AOP提供的一个SmartInstantiationAwareBeanPostProcessor,它的作用是将符合条件的bean包装成代理对象,包装成代理对象的过程会在bean实例外面包裹相应的AOP拦截器。调用者对该bean的方法调用,其实首先发生在相应的代理上,经过层层包裹的AOP拦截器之后,才真正执行目标be...原创 2019-07-17 11:44:28 · 1575 阅读 · 0 评论 -
Spring AOP : 工具类 BeanFactoryAdvisorRetrievalHelper
概述BeanFactoryAdvisorRetrievalHelper是Spring AOP框架提供的一个工具类,从整个IoC容器范围获取所有的Spring Advisor bean组件,用于辅助自动代理机制。该工具类的核心逻辑在于其方法List<Advisor> findAdvisorBeans(),该方法从容器(包含祖先容器)中找到并返回所有类型为org.springframe...原创 2019-07-17 15:25:58 · 555 阅读 · 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 · 313 阅读 · 0 评论 -
Spring Boot 自动配置 : AopAutoConfiguration
概述自动配置AopAutoConfiguration类的主要任务是根据配置参数使用注解@EnableAspectJAutoProxy。该自动配置类通过注解声明了自己生效的条件是 :以下类必须存在于classpath :EnableAspectJAutoProxyAspectAdviceAnnotatedElement配置参数spring.aop.auto值不为false...原创 2019-07-05 15:19:43 · 4695 阅读 · 2 评论 -
Spring : @EnableAsync 的工作原理
概述AsyncAnnotationBeanPostProcessor是一个BeanPostProcessor,继承自AbstractBeanFactoryAwareAdvisingPostProcessor,它持有一个AsyncAnnotationAdvisor对象,在每个bean后置处理阶段检测该bean是否符合包裹该AsyncAnnotationAdvisor的条件,如果符合,则包裹该Adv...原创 2019-07-13 22:39:04 · 1569 阅读 · 0 评论 -
Spring BeanPostProcessor 抽象基类 -- AbstractBeanFactoryAwareAdvisingPostProcessor
概述抽象类AbstractBeanFactoryAwareAdvisingPostProcessor及其父类AbstractAdvisingBeanPostProcessor定义了这样一类BeanPostProcessor :拥有一个Advisor对每个bean进行后置处理,如果该bean符合包裹自己所拥有的Advisor的条件,则将该Advisor包裹该bean。这里将bean和Adv...原创 2019-07-13 22:25:42 · 2198 阅读 · 0 评论 -
Spring AOP 内部工具类 : BeanFactoryAspectJAdvisorsBuilder
概述BeanFactoryAspectJAdvisorsBuilder是一个Spring AOP内部工具类,该工具类用来从bean容器,也就是BeanFactory中获取所有使用了@AspectJ注解的bean,最终用于自动代理机制(auto-proxying)。跟该工具类完成类似工作的另外一个工具类是BeanFactoryAdvisorRetrievalHelper,只不过BeanFact...原创 2019-01-14 18:40:28 · 1134 阅读 · 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 · 663 阅读 · 0 评论 -
Spring AOP : ReflectiveAspectJAdvisorFactory
概述使用反射机制,从一个使用AspectJ 5注解@Aspect的组件类上获取相应的advice方法,用于创建Spring AOP Advisor。被Spring自动代理机制使用。ReflectiveAspectJAdvisorFactory 继承自AbstractAspectJAdvisorFactory,并实现了接口AspectJAdvisorFactory,Serializable。基...原创 2019-08-07 15:58:26 · 782 阅读 · 0 评论