JSR-250表示,所有带@Resource注释的方法都将在@PostConstruct方法之前调用。
我的问题是:
这是否意味着在调用任何@PostConstruct注释方法之前,将调用上下文中所有Bean上所有@Resource注释方法?
或者换句话说,一旦注入(inject)了其依赖项,就可以调用bean @PostConstruct方法,即使上下文中的其他bean仍然没有注入(inject)依赖项也可以吗?
问候,
蒂姆
最佳答案
确保在调用给定bean的@PostConstruct
时,将注入(inject)其所有@Resource
字段。如果这些注入(inject)中的任何一个本身就是具有自己的@Resource
和@PostConstruct
的bean,则这些注入(inject)将已经被调用。换句话说,在调用任何给定的@PostConstruct
时,可以确保其所有依赖项都已完全初始化。
如果BeanA
没有明确表示对@PostConstruct
的依赖关系,则有可能甚至实际上有可能在BeanB
尚未实例化之前通过BeanB
构造并初始化BeanA
。
关于java - 再次在任何@PostConstruct之前进行所有@Resource注入(inject),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3244789/