java - 带注释 @PostConstruct (javax) 的方法不会调用

标签 java dependency-injection postconstruct

是否可以在使用 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/

相关文章:

Angular APP_INITIALIZER 提供程序将一项注入(inject)服务视为未定义,但其他服务注入(inject)得很好

dependency-injection - 为什么我不能在 Managed Bean 构造函数中使用 Init 属性?

java - 我必须在 JNLP 中的哪里提及服务器 URL?

java - 类和接口(interface)设计。方法未确定

Java 找不到方法 main

java - @PostConstruct 与 Spring Batch reader 结合时调用失败

java - JSF - Bean 注入(inject)问题

java - Akka future 指导

c# - 如何在 CaSTLe Windsor 中注册所有 WCF 服务实现

c# - 在构造函数中依赖注入(inject)上下文类