java - 再次在任何@PostConstruct 之前注入(inject)所有@Resource

标签 java spring resources lifecycle postconstruct

JSR-250 表示所有带@Resource 注释的方法都将在@PostConstruct 方法之前被调用。

我的问题是:

这是否意味着上下文中所有 bean 上的所有 @Resource 注释方法都将在调用任何 @PostConstruct 注释方法之前被调用? 或者换句话说,即使上下文中的其他 bean 仍未注入(inject)依赖项,也可以在注入(inject)依赖项后调用 beans @PostConstruct 方法吗?

问候, 蒂姆。

最佳答案

保证当给定 bean 的 @PostConstruct 被调用时,它的所有 @Resource 字段都将被注入(inject)。如果这些注入(inject)中的任何一个本身是具有自己的 @Resource@PostConstruct 的 bean,那么这些注入(inject)将已经被调用。换句话说,在调用任何给定的 @PostConstruct 时,可以保证其所有依赖项都已完全初始化。

有可能,事实上,BeanA 将在 BeanB 被实例化之前通过 @PostConstruct 构造和初始化, 如果 BeanBBeanA 没有明确的依赖。

关于java - 再次在任何@PostConstruct 之前注入(inject)所有@Resource,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3244789/

相关文章:

java - 错误: org. springframework.web.context.ContextLoader - 上下文初始化失败org.springframework.beans.factory.BeanCreationException

java - 写入资源文件java?

来自资源文件的 Qt 图像

java - 使用数组和各种类计算总利润java

java - Google 类无法访问 Google 云端硬盘

java - 需要帮助将链接列表实现到 TableView javaFX 并将其保存到文件中

对象的 add() 方法的 Java ArrayList 不起作用

Spring <jee :remote-slsb> and JBoss AS7 - No EJB receiver available for handling

angularjs - 在 AngularJS 中访问 Spring MVC 模型对象

android - 创建新 Activity 时资源 NotfoundException