SpringBoot-06-启动类的BeanDefinition缓存起来

在refresh之前还有一个重要的事情,把启动类的BeanDefinition缓存到beanFactory里面

1
2
3
4
5
6
7
8
/**
* spring boot会把很多东西给AnnotationConfigApplicationContext
* - 往AnnotationConfigApplicationContext的beanFactory的1级缓存放了点东西
* - 把启动类的BeanDefinition缓存到了beanFactory的beanDefinitionMap里面 refresh要用
* - 用spring boot的事件机制发布ApplicationContextInitializedEvent转到spring framework
* - 用spring boot的事件机制发布ApplicationPreparedEvent转到spring framework
*/
prepareContext(bootstrapContext, context, environment, listeners, applicationArguments, printedBanner);
1
2
// SpringBoot启动类被封装成BeanDefinition放到BeanFactory的这个缓存里面
this.beanDefinitionMap.put(beanName, beanDefinition);

SpringBoot-06-启动类的BeanDefinition缓存起来
https://bannirui.github.io/2026/08/14/SpringBoot/SpringBoot-06-启动类的BeanDefinition缓存起来/
作者
dingrui
发布于
2026年8月14日
许可协议