springBean的实例化过程

springBean的实例化过程

1、首先了解一下Bean和对象的区别。

  • Bean----->spring bean 有完整的生命周期。一定是一个对象,需要根据Bean上的注解(eg:懒加载,原型对象)等来决定是否要new。
  • 对象----->Java实例化的对象。不一定是一个bean,一定会使用到new。

2、流程图。

springBean的实例化过程

3、源码分析。

3.1创建好两个service。(注意:IndexService未添加到spring容器中)

springBean的实例化过程
springBean的实例化过程

3.2新建MyBeanFactoryPostProcessor类实现BeanFactoryPostProcessor接口来获取到map集合中的信息。

springBean的实例化过程

springBean的实例化过程

3.3运行主类,发现输出IndexService,而并非是UserService,说明修改成功

springBean的实例化过程