Spring Bean 的生命周期可以简单理解为 Bean 从创建到销毁的过程。我们可以用“人的一生”来类比:
1. 出生(实例化):Spring 容器通过构造函数或工厂方法创建 Bean 的实例,就像人出生一样。
2. 设置属性(属性赋值):Spring 通过依赖注入为 Bean 的属性赋值,比如通过 @Autowired 或 XML 配置注入其他 Bean 或值,就像给婴儿喂奶、穿衣服。
3. 初始化(Initialization):
◦ BeanNameAware:如果 Bean 实现了 BeanNameAware 接口,Spring 会设置 Bean 的名称。
◦ BeanFactoryAware:如果实现了 BeanFactoryAware 接口,Spring 会设置 BeanFactory。
◦ ApplicationContextAware:如果实现了 ApplicationContextAware 接口,Spring 会设置 ApplicationContext。
◦ @PostConstruct 或 InitializingBean:Spring 会调用 @PostConstruct 注解的方法或 afterPropertiesSet() 方法,进行自定义初始化,就像人上学、学习技能。
4. 使用(Ready to Use):Bean 初始化完成后,就可以被应用程序使用了,就像人成年后开始工作。
5. 销毁(Destruction):
◦ @PreDestroy 或 DisposableBean:当容器关闭时,Spring 会调用 @PreDestroy 注解的方法或 destroy() 方法,进行清理工作,就像人退休、安享晚年。
◦ 销毁:Bean 被销毁,生命周期结束。
总结一下,Spring Bean 的生命周期就是:出生 → 设置属性 → 初始化 → 使用 → 销毁。这个过程由 Spring 容器管理,开发者只需关注初始化和销毁时的逻辑。
希望这个比喻能帮助你理解!