(五)SpringBoot启动过程的分析-刷新ApplicationContext (4)

BeanFactoryPostProcessors是Spring框架中的一个很重要的扩展入口,通过它可以在Bean实例化之前进行一些修改,从类型上分为BeanDefinitionRegistryPostProcessor和BeanFactoryPostProcessor,在内部处理过程中,前者的优先级高于后者。与此同时,他们分别还会按照PriorityOrdered > Ordered > 默认
的优先级顺序来进行处理。了解他们执行顺序这点很重要,后续如有扩展需求就可以精准植入自己的逻辑。需要注意的是,这些处理器本身就是用于注册Bean,因此他们也可以注册和自己类型一样的扩展类。在使用的时候尤其要注意这点。例如在实现了PriorityOrdered的BeanDefinitionRegistryPostProcessor中
再注册一个实现了Ordered的BeanDefinitionRegistryPostProcessor,虽然这样没问题,但笔者认为这样代码隐藏过深。不利于后期维护。建议使用SPI机制来配置,简洁明了。

registerBeanPostProcessors()

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wpzszw.html