目的
程序员在对spring扩展的时候,可以自己实现后置处理器,完成特定的业务操作,该篇博客,主要是学习spring如何将程序员提供的后置处理器添加到spring容器中的;
顺带,将spring初始化流程中,其他几个方法做一个大致的解析和介绍
源码学习
registerBeanPostProcessors(beanFactory);
该方法是用来完成,注册BeanPostProcessor实现类的
如果我们自己实现了BeanPostProcessor接口,并提供了自己的业务处理逻辑,spring首先会把我们提供的BeanPostProcessor实现类,在实例化业务bean之前,先实例化,并存入特定的集合中;
org.springframework.context.support.AbstractApplicationContext#registerBeanPostProcessors
这个方法,就是用来处理后置处理器的
所以:这个方法归结而言,就完成了两件事情
- 把所有的BeanPostProcessor(包括spring自己的 + 我们提供的)进行初始化,并存入到spring容器中(signletonObjects这个集合中)
- 把所有的BeanPostProcessor存入到一个list中(
private final List<BeanPostProcessor> beanPostProcessors = new CopyOnWriteArrayList<>();)
public static void registerBeanPostProcessors(
ConfigurableListableBeanFactory beanFactory, AbstractApplicati

本文深入探讨Spring如何注册BeanPostProcessor,详细阐述`registerBeanPostProcessors()`方法,它负责初始化并存储所有后置处理器,包括自定义实现。同时,文章概述了初始化过程中的其他关键步骤,如`initMessageSource()`、`initApplicationEventMulticaster()`以及`finishBeanFactoryInitialization()`。此外,`onRefresh()`和`registerListeners()`作为扩展点,分别在Spring Boot和事件监听中发挥作用。
最低0.47元/天 解锁文章
5787

被折叠的 条评论
为什么被折叠?



