Spring注解学习_AOP原理5_SpringAOP总结

  1. Spring AOP总结:

Spring AOP总结:

  1. @EnableAspectJAutoProxy 开启AOP功能
  2. @EnableAspectJAutoProxy 会给容器中注册一个组件AnnotationAwareAspectJAutoProxyCreator
  3. AnnotationAwareAspectJAutoProxyCreator是一个后置处理器
  4. 我们由容器创建流程看AnnotationAwareAspectJAutoProxyCreator是如何被注册到容器中并在容器中发挥作用的:
    1. registerBeanPostProcessors() : 注册后置处理器,此时会创建AnnotationAwareAspectJAutoProxyCreator
    2. finishBeanFactoryInitialization() 初始化剩下的单实例bean
      1. 创建业务逻辑组件和切面组件
      2. AnnotationAwareAspectJAutoProxyCreator拦截组件的创建过程
      3. 组件创建完成后,判断组件是否需要增强
        • 需要,则:切面的通知方法,包装成增强器( Advisor ),给业务逻辑创建一个代理对象( cglib )
  5. 执行目标方法:
    1. 代理对象执行目标方法
    2. CglibAopProxy().intercept() 进行拦截:
      • 得到目标方法的拦截器链(增强器包装成拦截器MethodInterceptor)
      • 利用拦截器的链式机制,依次进入每一个拦截器进行执行
      • 执行效果:
        正常执行:前置通知 --》 目标方法 --》 后置通知 --》 返回通知
        出现异常:前置通知 --》 目标方法 --》 后置通知 --》 异常通知

转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达,邮件至 708801794@qq.com

文章标题:Spring注解学习_AOP原理5_SpringAOP总结

文章字数:270

本文作者:梅罢葛

发布时间:2020-04-06, 22:32:08

最后更新:2020-04-06, 22:49:45

原始链接:https://qiurungeng.github.io/2020/04/06/Spring%E6%B3%A8%E8%A7%A3%E5%AD%A6%E4%B9%A0-AOP%E5%8E%9F%E7%90%865-SpringAOP%E5%8E%9F%E7%90%86%E6%80%BB%E7%BB%93/
目录
×

喜欢就点赞,疼爱就打赏