spring in action

1.容器发现bean的定义,初始化bean
2.使用依赖注入的方式,spring根据bean定义,设置bean的所有属性
3.如果bean继承了BeanNameAware接口,则工厂调用setBeanName方法,把bean的Id传值过去
4.如果bean继承了BeanFactoryAware接口,则工厂调用setBeanFactroy()方法,把本身的一个实例传值过去。
5.如果bean关联了一些BeanPostProcessor,则调用这些BeanPostProcessor的postProcessBeforeInitialization()方法。
6.如果bean的init-method方法被设置,则调用bean的初始化方法
7.最后,如果bean关联了一些BeanPostProcessor,则调用这些BeanPostProcessor的postProcessAfterInitialization()方法。
补充:applicationContext中bean的生命周期

Bean 实例创建时序图

Bean 对象关系建立

网友评论