spring aop底层原理

1、创建过程

在解析配置类上的@EnableAspectAutoProxy的时候,会向IOC容器注册一个AnnotationAwareAspectJAutoProxyCreator(实现了BeanPostProcessor)的bean定义,在首次执行AnnotationAwareAspectJAutoProxyCreator.postProcessBeforeInstantiation()的时候会解析所有带有@Aspect的切面类,为每个advice方法和切点创建一个advisor,并将这个advisors集合缓存起来。在bean初始化后执行bean的后置处理器时,将advisor从之前的缓存中拿出来和当前bean 根据切点表达式进行匹配,匹配成功则为当前bean创建代理对象

2、调用过程

采用了责任链的设计模式。将advisor里的advice转化成统一的拦截器,使用责任链进行递归调用

posted @ 2022-03-14 00:37  区区致命伤  阅读(74)  评论(0)    收藏  举报