注册BeanPostProcessor Spring容器的创建过程之怎样注册BeanPostProcessor详解
煎丶包 人气:0想了解Spring容器的创建过程之怎样注册BeanPostProcessor详解的相关内容吗,煎丶包在本文为您仔细讲解注册BeanPostProcessor的相关知识和一些Code实例,欢迎阅读和指正,我们先划重点:Spring注册BeanPostProcessor,Spring容器,下面大家一起来学习吧。
注册BeanPostProcessor
refresh()
调用registerBeanPostProcessors(beanFactory)
方法,注册Bean的后置处理器,后置处理器是用来拦截bean创建过程的。
不同接口类型的BeanPostProcessor
,即继承了BeanPostProcessor
接口的子接口,在Bean创建前后的执行时机是不一样的
BeanPostProcessor
DestructionAwareBeanPostProcessor
InstantiationAwareBeanPostProcessor
SmartInstantiationAwareBeanPostProcessor
MergedBeanDefinitionPostProcessor
首先获取所有的BeanPostProcessor
后置处理器都默认可以通过PriorityOrdered
、Ordered
这两个接口来指定执行优先级
先注册实现了priorityOrdered
优先级接口的BeanPostProcessor
,调用registerBeanPostProcessors()
方法进行注册
registerBeanPostProcessors()
方法调用addBeanPostProcessor()
方法将BeanPostProcessor
添加到BeanFactory
中
再注册实现了Ordered
优先级接口的BeanPostProcessor
最后注册没有实现任何优先级接口的BeanPostProcessor
最终注册MergedBeanDefinitionPostProcessor
类型的BeanPostProcessor
还会注册一个ApplicationListenerDetector
来在Bean创建完成后检查是否ApplicationListener
,如果是,就会把这个监听器bean放在容器中保存起来
加载全部内容