AOP注解原理
2021-07-28 23:44:12 0 举报
AOP注解原理
作者其他创作
大纲/内容
4、BeanPostProcessor(AnnotationAwareAspectJAutoProxyCreator)创建成功;--> aspectJAdvisorsBuilder
3、优先注册 实现了 PriorityOrdered接口的BeanPostProcessor
5、注册 没实现 优先级接口的BeanPostProcessor
4、再给容器中注册实现了 Ordered接口 的BeanPostProcessor
2、创建 bean
AspectJAwareAdvisorAutoProxyCreator类
@Import(AspectJAutoProxyRegistrar.class):给容器中导入AspectJAutoProxyRegistrar * 利用AspectJAutoProxyRegistrar自定义给容器中注册bean;BeanDefinetion * internalAutoProxyCreator=AnnotationAwareAspectJAutoProxyCreator * 给容器中注册一个AnnotationAwareAspectJAutoProxyCreator;
3、invokeInitMethods();执行 自定义 的 初始化方法
4、applyBeanPostProcessorsAfterInitialization();执行 后置处理器 的 postProcessAfterInitialization()
1、先从缓存中 获取当前bean,如果能获取到,说明bean是之前被创建过的,直接使用,否则 再创建 只要创建好的Bean都会被缓存起来
6、注册BeanPostProcessor,实际上就是创建BeanPostProcessor对象,保存在 容器 中
7、把BeanPostProcessor 注册 到 BeanFactory 中beanFactory.addBeanPostProcessor(postProcessor);
2、给容器中加 别的 BeanPostProcessor
【AnnotationAwareAspectJAutoProxyCreator在所有bean创建之前会有一个拦截,InstantiationAwareBeanPostProcessor,会调用postProcessBeforeInstantiation()】
@EnableAspectJAutoProxy是什么?
extends
2、populateBean;给bean的各种 属性赋值
3、registerBeanPostProcessors(beanFactory);注册bean的后置处理器来方便拦截bean的创建
2、applyBeanPostProcessorsBeforeInitialization():应用后置处理器的postProcessBeforeInitialization()
4、finishBeanFactoryInitialization(beanFactory);完成BeanFactory初始化工作;创建剩下的单实例bean
AbstractAutoProxyCreator类主要执行方法:1. AbstractAutoProxyCreator.setBeanFactory()2. AbstractAutoProxyCreator.有后置处理器的逻辑
1、遍历获取 容器中所有的Bean,依次创建 对象getBean(beanName)getBean->doGetBean()->getSingleton()
AnnotationAwareAspectJAutoProxyCreator类主要执行方法:AnnotationAwareAspectJAutoProxyCreator.initBeanFactory()
1、创建Bean的实例
1、invokeAwareMethods():处理 Aware接口 的方法 回调
AnnotationAwareAspectJAutoProxyCreator 会在任何bean创建之前先尝试返回bean的实例 【BeanPostProcessor是在Bean对象创建完成初始化前后调用的】 【InstantiationAwareBeanPostProcessor是在创建Bean实例之前先尝试用后置处理器返回对象的】
3、initializeBean:初始化bean
1、先获取ioc容器已经定义了的,需要 创建 对象的所有 BeanPostProcessor
AbstractAdvisorAutoProxyCreator类主要执行方法:AbstractAdvisorAutoProxyCreator.setBeanFactory() 中的 initBeanFactory()
1、传入配置类,创建ioc容器
2、createBean();创建bean
implements
2、注册配置类,调用refresh()刷新容器
创建
创建internalAutoProxyCreator的BeanPostProcessor【AnnotationAwareAspectJAutoProxyCreator】
0 条评论
下一页
为你推荐
查看更多