是否可以在使用 javax 的注释调用构造函数后立即调用特定的初始化方法?
我将 @Inject
注释 (javax.inject.Inject)
放在我想要使用 @PostConstruct
在方法中初始化的字段上code> 注释 (javax.annotation.PostConstruct)
就在构造函数被调用之后,但是这个 init 方法没有被调用,NPE 崩溃了。
public class ClassChild extends ClassParent{
@Inject
private SomeService someService;
@PostConstruct
public void init(){
someService = new SomeService(getSomeValues()) // getSomeValues() a method from parent
}
我是否正确使用了这些注释?问题是什么?如何在调用 ClassChild 构造函数后立即调用 init() 方法?我将非常感谢任何帮助!
最佳答案
您的ClassChild
不是托管对象(例如Spring中的@Component
),因此@Inject
和@PostConstruct都不是
会起作用的。您不应该调用构造函数,您需要让框架初始化 ClassChild
,之后框架还将调用 @PostConstruct
方法。
关于java - 带注释 @PostConstruct (javax) 的方法不会调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58234544/