Java 从具有注释@PostConstruct的类派生

Java 从具有注释@PostConstruct的类派生,java,jakarta-ee,inheritance,annotations,Java,Jakarta Ee,Inheritance,Annotations,如果您有一个使用@PostConstruct注释的父类,并且您创建了一个派生自它的子类。每次创建子类的实例时,是否会自动调用@PostConstruct方法?因为每次创建父实例时都会调用@PostConstruct方法 我知道它在子类中调用super()自动为我们提供,而无需我们调用它 我只是不确定如果子类调用super(),是否会自动调用@PostConstruct注释构造函数 测试此场景后,将自动调用基类中的@PostConstruct方法 流程如下所示: 创建子类时,您处于子类的构造函数中

如果您有一个使用
@PostConstruct
注释的父类,并且您创建了一个派生自它的子类。每次创建子类的实例时,是否会自动调用
@PostConstruct
方法?因为每次创建父实例时都会调用
@PostConstruct
方法

我知道它在子类中调用
super()自动为我们提供,而无需我们调用它


我只是不确定如果子类调用
super(),是否会自动调用
@PostConstruct
注释构造函数

测试此场景后,将自动调用基类中的
@PostConstruct
方法

流程如下所示:

  • 创建子类时,您处于子类的构造函数中,然后会自动强制进入父类
  • 完成父类构造函数后,会将您发送回子类的构造函数
  • 完成子类构造函数后,会自动将您发送到父类
    @PostConstruct
    方法

  • 在这两种方法中调用
    println()
    ,启动你的应用程序,看看打印了什么。就像@millimoose建议的那样,你可以自己测试并回答你的问题。我认为这对将来的其他人会有好处。这可能取决于注射的目的。我认为,
    @PostConstruct
    可以被和识别,也许也可以被其他框架识别,可以想象这些框架具有不同的行为。您在这里使用的是什么框架?在我的测试中,如果您要覆盖超级用户的
    @PostConstruct
    ,则首先调用子用户的。如果不重写,则首先调用父级的。