视频字幕
Spring Bean 的生命周期是 Spring 框架中的核心概念之一。它描述了 Bean 从创建到销毁的完整过程。Spring 容器负责管理 Bean 的整个生命周期,确保 Bean 在正确的时机被创建、配置、初始化和销毁。理解 Bean 的生命周期对于开发高质量的 Spring 应用程序至关重要。
Bean 的生命周期可以分为八个主要阶段。首先是实例化阶段,Spring 容器根据 Bean 定义创建实例。然后是属性填充,进行依赖注入。接下来是 Aware 接口回调,让 Bean 获得容器相关资源。之后是 BeanPostProcessor 的前置和后置处理。中间是初始化阶段,执行自定义初始化逻辑。最后 Bean 进入可用状态,直到容器关闭时被销毁。
在 Bean 生命周期中,Aware 接口和 BeanPostProcessor 起到重要作用。Aware 接口让 Bean 能够获得 Spring 容器的相关资源,比如 BeanNameAware 可以获取 Bean 的名称,ApplicationContextAware 可以获取应用上下文。BeanPostProcessor 则提供了重要的扩展点,允许在 Bean 初始化前后执行自定义逻辑,这是实现 AOP 等功能的基础。
初始化阶段是 Bean 生命周期的关键环节。Spring 提供了多种初始化方式,包括实现 InitializingBean 接口的 afterPropertiesSet 方法、使用 PostConstruct 注解,以及在配置中指定 init-method。销毁阶段同样重要,可以通过 PreDestroy 注解、实现 DisposableBean 接口或指定 destroy-method 来执行清理工作。需要注意的是,prototype 作用域的 Bean 不会执行销毁方法。
Bean 的作用域直接影响其生命周期管理方式。单例作用域的 Bean 由 Spring 容器完全管理,从容器启动时创建到容器关闭时销毁,经历完整的生命周期。而原型作用域的 Bean 每次请求都会创建新实例,容器只负责创建和初始化,不会执行销毁方法,需要开发者手动管理。其他作用域如 request 和 session 也有各自特定的生命周期规则。理解这些差异对于正确使用 Spring Bean 非常重要。