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
,则首先调用子用户的。如果不重写,则首先调用父级的。