【问题标题】:Deriving from a class that has Annotation @PostConstruct派生自具有注解 @PostConstruct 的类
【发布时间】:2012-10-21 10:46:44
【问题描述】:

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

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

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

【问题讨论】:

  • 在这两种方法中调用println(),启动您的应用程序,然后查看打印的内容。
  • 就像@millimoose 建议的那样,您可以自己测试并回答您的问题。我认为这对未来的其他人会有好处。
  • 这可能取决于注入的内容。我认为@PostConstructcdiejb3 识别,并且可能也被其他框架识别,并且可以想象这些可能具有不同的行为。你在这里使用什么框架?

标签: java jakarta-ee inheritance annotations


【解决方案1】:

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

流程是这样的:

  1. 创建子类时,你在子类的构造函数中,然后你自动被强制进入父类。
  2. 父类构造函数完成后,您将被送回子类的构造函数。
  3. 子类构造函数完成后,您将自动发送到父类@PostConstruct 方法

【讨论】:

  • 在我的测试中,如果您要覆盖超级的@PostConstruct,那么首先调用孩子的。如果您没有覆盖,则首先调用父级。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-03-15
  • 2017-11-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-05-18
相关资源
最近更新 更多