Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/387.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 重写@PostConstruct方法时,是否在创建子对象时调用父对象中的方法?_Java_Spring - Fatal编程技术网

Java 重写@PostConstruct方法时,是否在创建子对象时调用父对象中的方法?

Java 重写@PostConstruct方法时,是否在创建子对象时调用父对象中的方法?,java,spring,Java,Spring,遇到这个问题: 但当我将相同的代码放入一个简单的Spring Boot应用程序时,我得到的是: Parent-----constructor Child-----constructor Child-----PostConstruct 显示在实例化子对象时未调用父@PostConstruct方法 什么解释了这种差异?更新了 另一个问题是错误的 由于子@PostConstruct方法重写父@PostConstruct方法,因此Spring足够聪明,只调用该方法一次,并且由于子方法不调用super

遇到这个问题:

但当我将相同的代码放入一个简单的Spring Boot应用程序时,我得到的是:

Parent-----constructor
Child-----constructor
Child-----PostConstruct
显示在实例化子对象时未调用父@PostConstruct方法


什么解释了这种差异?

更新了

另一个问题是错误的

由于子
@PostConstruct
方法重写父
@PostConstruct
方法,因此Spring足够聪明,只调用该方法一次,并且由于子方法不调用
super.init()
,因此只打印子方法的输出

Parent-----构造函数
子构造函数
儿童------施工后
如果重命名这两个方法中的一个,使子
@PostConstruct
方法不会覆盖父
@PostConstruct
方法,则这两个方法都将执行

Parent-----构造函数
子构造函数
父项------施工后
儿童------施工后

当我运行代码时,首先调用了父
@PostConstruct
方法。

这正是我所期望的。您也可以将这些方法设置为私有的,而不是重命名它们,尽管这可能会让人有点困惑。我想知道那篇文章的作者是如何发布错误的输出的。