SpringBean 的生命周期大致如下图所示
- 下面对这张图做一下详细的解释
- 实例化: 就是我们
new
一个对象的时候 - 调用反射设置属性的值:使用依赖注入,Spring按照Bean定义信息配置Bean所有属性
- 调用 Aware 方法: 如果实现了Aware 相关的接口,比如
org.springframework.beans.BeanNameAware
,这个接口实现后,spring 可以根据配置文件的 的 id ,和对应的值,来给对象赋值。相同的还有org.springframework.beans.factory.BeanFactoryAware
只不过他返回的是一个工厂。 - 如果 bean 实现了
org.springframework.beans.factory.config.BeanPostProcessors
,那么会调用他的postProcessBeforeInitialization()
方法 - 如果Bean定义文件中定义init-method,那么会调用bean的
initBean()
方法。 - 同上述步骤4,如果实现了 BeanPostProcessors 接口那么会调用
postProcessAfterInitialization()
方法,到这一步为止,bean 已经创建完毕 - 当容器关闭的时候 如果实现了
DisposableBean
方法,会调用destroy()
方法。 - 最后如果配置了destroy-method属性,会自动调用其配置的销毁方法
这里有一篇讲的很好的文章:https://www.cnblogs.com/kenshinobiy/p/4652008.html