Sping Bean的初始化过程

SpringBean的初始化过程从大的层面来看,主要分3个步骤:

1.实例化bean对象

  • Spring容器根据配置中的Bean Defination实例化Bean对象。Bean Definition 可以通过 XML,Java 注解或 Java Config类代码提供。
  • Spring使用依赖注入填充所有属性,按照Bean中定义的配置。

2.Aware 相关的属性,注入到 Bean 对象

  • 如果 Bean 实现 BeanNameAware 接口,则工厂通过传递 Bean 的 beanName 来调用 setBeanName(String name) 方法。
  • 如果 Bean 实现 BeanFactoryAware 接口,工厂通过传递自身的实例来调用 setBeanFactory(BeanFactory beanFactory) 方法。

3.调用相应的方法,进一步初始化 Bean 对象

  • 如果存在与 Bean 关联的任何 BeanPostProcessor 们,则调用 preProcessBeforeInitialization(Object bean, String beanName)方法。
  • 如果 Bean 实现 InitializingBean 接口,则会调用 afterPropertiesSet() 方法。
  • 如果为 Bean 指定了 init 方法(例如 <bean /> 的 init-method 属性),那么将调用该方法。
  • 如果存在与 Bean 关联的任何 BeanPostProcessor 们,则将调用 postProcessAfterInitialization(Object bean, String beanName) 方法。
参考流程图:


全部评论

相关推荐

07-02 18:09
门头沟学院 Java
苍穹外卖和谷粒商城这俩是不是烂大街了,还能做吗?
想去重庆的鸽子在吐槽:你不如把这俩做完自己搞明白再优化点再来问 何必贩卖焦虑
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务