springbean的生命周期 实例化 详细
时间: 2023-10-16 13:09:37 浏览: 46
Spring Bean 的生命周期可以被划分为以下阶段:
1. 实例化(Instantiation): Spring 容器创建 Bean 的实例。这是 Bean 生命周期的第一步。
2. 属性赋值(Population):Spring 容器将 Bean 的属性值和对其他 Bean 的引用注入到 Bean 中,这是 Bean 生命周期的第二步。
3. BeanPostProcessor 的 postProcessBeforeInitialization() 方法:在初始化 Bean 前执行的自定义逻辑。
4. 初始化(Initialization):Spring 容器调用 Bean 的初始化方法(如果 Bean 实现了 InitializingBean 接口,那么就调用 afterPropertiesSet() 方法;或者,如果在配置文件中定义了 init-method 属性,那么就调用指定的方法)。
5. BeanPostProcessor 的 postProcessAfterInitialization() 方法:在初始化 Bean 后执行的自定义逻辑。
6. 使用(Using):Bean 可以被客户端程序使用了。这是 Bean 生命周期的最后一步。
7. 销毁(Destruction):当 Spring 容器关闭时,会调用 Bean 的销毁方法(如果 Bean 实现了 DisposableBean 接口,那么就调用 destroy() 方法;或者,如果在配置文件中定义了 destroy-method 属性,那么就调用指定的方法)。
总的来说,Bean 生命周期的核心是初始化和销毁。在初始化阶段,Spring 容器为 Bean 分配内存并调用它的初始化方法;在销毁阶段,Spring 容器释放 Bean 占用的资源并调用它的销毁方法。其他阶段则是为了提供扩展点,允许开发人员自定义 Bean 生命周期的各个阶段的行为。