Spring bean生命周期中有许多初始化选项.
init-method,PostConstruct注释,afterPropertiesSet,Bean 后初始化甚至是类构造函数.所有这些都可以用于初始化bean.
我很困惑何时使用其中一个.此外,有没有我们可能需要在一个Bean中使用所有这些选项?如果是,请举例说明.
真的很期待得到一些很好的答案.
ale*_*zak 19
使用构造函数和其他选项之间的区别在于构造函数代码是第一个被执行的,而其他选项只有在将依赖项注入bean之后才会被调用(来自@Autowired注释或XML文件).
您在构造函数中编写的代码将在Bean的属性仍未启动时运行.所有@Autowired字段都将为null.有时这是你想要的,但通常你希望代码在设置属性后运行.
除此之外,我没有看到差异,除了执行顺序.我不认为有一种情况你想要在同一个班级中拥有所有选项.
我建议你尽可能使用构造函数.有一个非常好的理由这样做:测试
当你要对一个Spring bean进行单元测试时,你将希望能够以最小的忙乱构建类.这意味着您只需要调用构造函数,而不必自己处理调用各种生命周期方法.在创建要测试的类时,您想要的最后一件事是必须知道对象是如何初始化属性的.
使用Spring的构造函数注入支持,您可以轻松地将其他bean或项目属性注入到构造函数中,从而能够覆盖几乎所有场景.
| 归档时间: |
|
| 查看次数: |
11275 次 |
| 最近记录: |