音乐推荐
说明
本篇主要介绍Spring Bean
的生命周期以及Spring
提供的对应各个生命周期的hook
(钩子)介绍。
Spring 生命周期流程图
Spring依赖注入对象初始化阶段说明
Spring
支持属性注入、setter
注入、构造器注入等依赖注入形式。这三种注入形式如下:
- 当注解
@Autowired
被标注在属性的setter
方法上时执行setter
注入,依赖对象在构造方法之后,setBeanName(String)
方法之前直接注入到属性中(不通过setter
方法); - 当注解
@Autowired
被标注在属性声明上时执行属性注入,依赖对象在构造方法之后,setBeanName(String)
方法之前通过setter
方法完成注入; - 当注解
@Autowired
被标注在构造器上,并且属性被定义为final
类型时,执行构造器注入,依赖对象在调用构造方法时实现注入(Intellij IDEA
推荐)。
Spring
在4.3.2.RELEASE
版本中支持以下这种特殊定义:
类定义:
|
|
XML
配置文件声明:
|
|
也就是说,Bean
的定义可以不通过constructor-arg
标签或者c
命名空间来指定构造方法的参数。
Spring生命周期测试
LifeCycle
类:
|
|
XML
配置文件中对该Bean
的定义:
|
|
测试样例:
|
|
测试结果:
如果需要在Bean
实例化后结合属性执行某些操作时,建议通过实现InitializingBean
接口来完成操作,同时,想要在Spring
的IoC
容器关闭时执行某些清除操作,可以通过实现DisposableBean
接口来实现。
编写日期:2017-06-03 |
发布日期:2017-06-03 |