springbean的生命周期

spring 的bean的生命周期

1.当bean的scope属性为默认singleton的属性时(单例)

① 通过构造器或工厂方法创建bean实例

② 为bean的属性设置值和对其他bean的引用

③ 调用bean的初始化方法

④ 可以调用bean

⑤ 当容器关闭时,生命结束

1.1 当bean的scope属性为默认prototype的属性时(多例)

​ 会在每次获取这个对象时,进行创建。但是却不会再容器销毁时进行销毁,需要自己手动销毁。

2.在配置bean时,通过init-method和destroy-method 属性为bean指定初始化和销毁方法


        

在Dog这个类中定义 init 方法和 destory方法,会在init执行时创建Dog类的对象,在执行destory方法时,销毁该对象。

同样可以实现spring提供的InitializingBean(初始化逻辑),DisposableBean(销毁逻辑)接口

3.bean的后置处理器

个人看为bean的方法增强

  1. bean后置处理器允许在调用初始化方法前后对bean进行额外的处理
  2. bean后置处理器对IOC容器里的所有bean实例逐一处理,而非单一实例。其典型应用是:检查bean属性的正确性或根据特定的标准更改bean的属性。(将返回一个全新的bean或者一个被修改了一部分的bean)
  3. bean后置处理器时需要实现接口:BeanPostProcessor`。在初始化方法被调用前后,Spring将把每个bean实例分别传递给上述接口的以下两个方法:
  • postProcessBeforeInitialization(Object, String)

  • postProcessAfterInitialization(Object, String)

3.1.添加bean后置处理器后bean的生命周期

①通过构造器或工厂方法创建bean实例

②为bean的属性设置值和对其他bean的引用

③将bean实例传递给bean后置处理器的postProcessBeforeInitialization()方法

④调用bean的初始化方法

⑤将bean实例传递给bean后置处理器的postProcessAfterInitialization()方法

⑥可以调用bean

⑦当容器关闭时,生命结束

你可能感兴趣的:(spring,java)