首页 > 编程语言 > 详细

SpringBoot扩展接口- BeanFactoryPostProcessor后置处理器

时间:2021-09-17 15:54:32      阅读:47      评论:0      收藏:0      [点我收藏+]

BeanFactoryPostProcessor接口

对BeanFactory进行后置方法调用

触发时间: 

ApplicationPreparedEvent 上下文准备完成后

 refreshContext()方法中调用 invokeBeanFactoryPostProcessors(beanFactory)

 

BeanFactoryPostProcessor接口会被分组成 

BeanDefinitionRegistryPostProcessor 注册器和 BeanFactoryPostProcessor 规则处理器
BeanDefinitionRegistryPostProcessor : 注册器:
SharedMetadataReaderFactoryContextInitializer
ConfigurationWarningsApplicationContextInitializer
ConfigurationClassPostProcessor(重点)

 

BeanFactoryPostProcessor  规则处理器:

ConfigFileApplicationListener # PropertySourceOrderingPostProcessor

 

先执行注册器的调用。
第一次调用注册器注册方法。
主要是  ConfigurationClassPostProcessor 类
调用 postProcessBeanDefinitionRegistry()方法,进行bean定义的扫描,注册到BeanFactory中
1、使用启动类作为入口
2、进行类扫描器扫描所有配置类 (只要有@Configuration、@Component、@ComponentScan、@Import、
  @ImportResource和@Bean中的其中一个注解,就会将bean注册到beanfactory中)
 
第二次调用注册器方法
已经执行过的注册器不会再次执行
这里执行的注册器是从加载的配置类中获取的bean配置类。 BeanFactory中获取到类型为BeanDefinitionRegistryPostProcessor 的bean
 
执行bean注册工作。
比如在这里进行 mybatis的dao接口bean定义扫描注册到beanfactory中。
 
第三次:最后一次将为调用过的注册器进行调用。(这里一般没有)
 
 
 
规则处理器方法调用 
BeanFactoryPostProcessor.postProcessBeanFactory()
 
 

 

SpringBoot扩展接口- BeanFactoryPostProcessor后置处理器

原文:https://www.cnblogs.com/gne-hwz/p/15294630.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!