Spring Boot 源码分析 —— BeanDefinitionRegistryPostProcessor接口

类结构图:

image.png

通过类结构图清楚的了解到BeanDefinitionRegistryPostProcessor继承了BeanFactoryPostProcessor接口,关于BeanFactoryPostProcessor接口不了的朋友可以查看Spring Boot 源码分析 —— 后置处理器

源码注释:

/**
 * Extension to the standard {@link BeanFactoryPostProcessor} SPI, allowing for
 * the registration of further bean definitions <i>before</i> regular
 * BeanFactoryPostProcessor detection kicks in. In particular,
 * BeanDefinitionRegistryPostProcessor may register further bean definitions
 * which in turn define BeanFactoryPostProcessor instances.
 *
 * @author Juergen Hoeller
 * @since 3.0.1
 * @see org.springframework.context.annotation.ConfigurationClassPostProcessor
 */
public interface BeanDefinitionRegistryPostProcessor extends BeanFactoryPostProcessor {

    /**
     * Modify the application context's internal bean definition registry after its
     * standard initialization. All regular bean definitions will have been loaded,
     * but no beans will have been instantiated yet. This allows for adding further
     * bean definitions before the next post-processing phase kicks in.
     * @param registry the bean definition registry used by the application context
     * @throws org.springframework.beans.BeansException in case of errors
     */
    void postProcessBeanDefinitionRegistry(BeanDefinitionRegistry registry) throws BeansException;

}

接口注释:

对标准{@link BeanFactoryPostProcessor}SPI的扩展,允许在常规BeanFactoryPostProcessor检测启动之前进一步的注册bean定义。特别是,BeanDefinitionRegistryPostProcessor可以注册其他bean定义

方法注释:

在标准初始化后修改应用程序上下文的内部bean定义注册表。所有常规bean定义都将被加载,但bean没有被实例化。这允许在下一个后处理阶段开始添加更多的bean定义。

总结:

BeanDefinitionRegistryPostProcessor与BeanFactoryPostProcessor可以在容器所有bean实例化之前对所有BeanDefinition进行定义、修改、删除。

个人建议:
BeanDefinitionRegistryPostProcessor做bean的定义
BeanFactoryPostProcessor用作BeanDefinition修改

以上属于原创文章,转载请注明作者@怪咖
QQ:208275451

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1.1 spring IoC容器和beans的简介 Spring 框架的最核心基础的功能是IoC(控制反转)容器,...
    simoscode阅读 6,775评论 2 22
  • 1.1 Spring IoC容器和bean简介 本章介绍了Spring Framework实现的控制反转(IoC)...
    起名真是难阅读 2,623评论 0 8
  • 写写编程 Writed on 14 February, 2015 Rewrite today 现在的我正在学编程,...
    质子陈阅读 187评论 1 2
  • 回忆折叠平摊,记忆穿梭盘旋。而在苍穹之上的骄阳,仿佛永远都是那么的饱满且鲜活,从升起到落下;阳光总是那么的强烈和耀...
    门前折柳阅读 441评论 0 0
  • 当这个盛大的节日再一次紧锣密鼓的降临在这隆冬之季,我想说说“光棍儿节”的那点儿事。 1、身边的“光棍儿”们 朋友J...
    七月淼淼阅读 359评论 0 3