Spring中ApplicationContext如何创建Bean?

Spring中ApplicationContext如何创建Bean?

💡 原文英文,约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会将实例缓存以供将来使用。

➡️

继续阅读