springbean生命周期
时间: 2024-03-07 19:31:59 浏览: 67
Spring Bean 的生命周期包括以下几个阶段:
1. 实例化:当容器启动时,实例化 Bean。Spring 支持多种实例化方式,包括使用构造函数或工厂方法等。
2. 设置属性:在实例化后,Spring 通过调用 Bean 的 setter 方法或直接设置字段来设置 Bean 的属性。
3. BeanPostProcessor 的 postProcessBeforeInitialization 方法:在 Bean 初始化之前,Spring 调用所有注册的 BeanPostProcessor 的 postProcessBeforeInitialization 方法。
4. 初始化:如果 Bean 实现了 InitializingBean 接口,Spring 将调用其 afterPropertiesSet 方法。如果 Bean 声明了 init 方法,则 Spring 将调用该方法。
5. BeanPostProcessor 的 postProcessAfterInitialization 方法:在 Bean 初始化之后,Spring 调用所有注册的 BeanPostProcessor 的 postProcessAfterInitialization 方法。
6. 使用:Bean 初始化后,可以在应用程序中使用它。
7. 销毁:当容器关闭时,Spring 调用 Bean 的 destroy 方法进行清理。如果 Bean 实现了 DisposableBean 接口,则 Spring 将调用其 destroy 方法。如果 Bean 声明了 destroy 方法,则 Spring 将调用该方法。
需要注意的是,如果 Bean 的作用域为 prototype,则 Spring 不会调用 destroy 方法。此外,可以通过使用 @PostConstruct 和 @PreDestroy 注解来替代 InitializingBean 和 DisposableBean 接口,并且这些注解更加灵活和易于使用。
阅读全文