💡
原文英文,约300词,阅读约需1分钟。
📝
内容提要
在Spring中,创建ApplicationContext时,首先解析配置类生成BeanDefinition并注册到BeanFactory。接着通过refresh()方法修改和初始化Bean,最后实例化Bean并注入依赖,存入单例缓存。
🎯
关键要点
-
在Spring中创建ApplicationContext时,首先解析配置类生成BeanDefinition并注册到BeanFactory。
-
BeanDefinition描述了每个bean的创建方式,包括类类型、作用域和依赖关系等。
-
使用ConfigurationClassPostProcessor等处理器扫描和解析注解。
-
refresh()方法是ApplicationContext的复杂生命周期方法,涉及多个关键步骤。
-
invokeBeanFactoryPostProcessors()用于修改或添加BeanDefinitions。
-
registerBeanPostProcessors()设置钩子以自定义bean创建。
-
finishBeanFactoryInitialization()触发单例bean的创建。
-
在调用getBean()或单例预实例化时,Spring会创建实例并注入依赖。
-
依赖注入可以通过字段、setter或构造函数进行。
-
初始化回调通过@PostConstruct或InitializingBean接口应用。
-
BeanPostProcessors允许增强或代理bean。
-
如果bean的作用域是单例,Spring会将实例缓存以供将来使用。
➡️