我们正在重用一个使用spring java-config(使用@Configuration)定义其bean的项目,并且在一个这样的类中它有一个@PostConstructinit方法.
这里的预期行为是什么 - 何时调用此方法?关于豆类,就是这样.即,这个方法的行为就像配置类是一个bean(它实际上是一个?)
我们观察到的是,根据操作系统,可以在@Autowired初始化进入配置类的bean之前调用它,因此最终使用不完整的依赖项.
Boz*_*zho 29
即使对于@Configuration,@PostConstruct表现如预期 - 它会在注入类的依赖项后调用.虽然这有点令人困惑(加上@Configuration类是bean 的事实),但它是正确的.
手头的问题是在spring-security-oauth的帮助下引入的一个隐藏的循环依赖 - 这是一个令人费解的配置集,超出了本讨论的范围.
因此,@PostConstruct如果依赖bean仅在循环依赖性的情况下未完全初始化,则可以调用.如果通过setter或field injection提供依赖关系,则不报告循环依赖关系,而是使用不完整的bean.
此处需要注意的是,循环依赖性处理似乎依赖于OS(这意味着一些JVM或JRE差异).
| 归档时间: |
|
| 查看次数: |
14771 次 |
| 最近记录: |