【发布时间】:2011-03-25 07:23:58
【问题描述】:
在托管 bean 中,@PostConstruct 在常规 Java 对象构造函数之后调用。
为什么我要使用@PostConstruct 来通过 bean 进行初始化,而不是使用常规的构造函数本身?
【问题讨论】:
-
我的印象是构造函数注入通常更适合允许依赖项为
final。鉴于这种模式,为什么要将@PostConstruct添加到 J2EE - 他们肯定已经看到了另一个用例? -
@mjaggard 我的理解是
@PostConstruct不用于适当地注入您的依赖项,以确保它们是final等;它被用作一个实用程序的注释,即使该对象由 IoC 容器多次构造,也应该只调用一次。并不是说我知道这将如何在容器中发生,但它显然会发生(请参阅接受的答案)。
标签: java dependency-injection jakarta-ee cdi jsr299