1.Bean的生命周期
-
Spring IOC 容器可以管理 Bean 的生命周期, Spring 允许在 Bean 生命周期的特定点执行定制的任务.
-
Spring IOC 容器对 Bean 的生命周期进行管理的过程:
-
通过构造器或工厂方法创建 Bean 实例
-
为 Bean 的属性设置值和对其他 Bean 的引用
-
调用 Bean 的初始化方法(自动)
-
Bean 可以使用了
-
当容器关闭时, 调用 Bean 的销毁方法(程序结束就关闭,也可以自己关闭)
-
-
在 Bean 的声明里设置 init-method 和 destroy-method 属性, 为 Bean 指定初始化和销毁方法.
-
-
自己在实体类提供的两个方法:
-
-
-
2.创建 Bean 后置处理器
-
Bean 后置处理器允许在调用初始化方法前后对 Bean 进行额外的处理.
-
Bean 后置处理器对 IOC 容器里的所有 Bean 实例逐一处理, 而非单一实例. 其典型应用是: 检查 Bean 属性的正确性或根据特定的标准更改 Bean 的属性.
-
对Bean 后置处理器而言, 需要实现
接口. 在初始化方法被调用前后, Spring 将把每个 Bean 实例分别传递给上述接口的以下两个方法:
-
-
添加 Bean 后置处理器后 Bean 的生命周期:
- 通过构造器或工厂方法创建 Bean 实例
- 为 Bean 的属性设置值和对其他 Bean 的引用
- 将 Bean 实例传递给 Bean 后置处理器的 postProcessBeforeInitialization 方法
- 调用 Bean 的初始化方法
- 将 Bean 实例传递给 Bean 后置处理器的 postProcessAfterInitialization方法
- Bean 可以使用了
- 当容器关闭时, 调用 Bean 的销毁方法
-
使用:实现接口会覆写两个方法,一个会在init-method之前被调用,一个会在init-method之后被调用
-
方法参数:bean:实例本身;baenName:IOC容器配置的bean名字--id
-
返回值:是实际上返回给用户的那个bean,注意:可以在两个方法中修改返回的bean,甚至返回一个新的bean
-
-
在配置文件中,不需要指定id,会自动识别
-
-
在启动类不需要做任何操作就会自动执行
-
-