我有一个类的层次结构,它们都有一些PostConstruct注释方法的实现,但是我注意到尽管我已经定义了bean作为最低级子类的实现,但是子类和#39;没有调用PostConstruct方法。
例如,我有以下四个类。
public class A {
@PostConstruct
public void postConstruct() {
LOG.info("A PostConstruct complete!");
}
}
public class B extends A {
@PostConstruct
public void postConstruct() {
super.postConstruct();
LOG.info("B PostConstruct complete!");
}
}
public class C extends B {
@PostConstruct
public void postConstruct() {
super.postConstruct();
LOG.info("C PostConstruct complete!");
}
}
public class D extends C {
@PostConstruct
public void postConstruct() {
super.postConstruct();
LOG.info("D PostConstruct complete!");
}
}
通过此设置,线条" A PostConstruct完成!"和" B PostConstruct完成!"打印到日志,但不打印到C或D行。但是,C类的一些方法显然被调用了,但是D的PostConstruct方法结尾的一个特定行肯定没有被击中。
我不知道这是否重要,但是" LOG" object是一个log4j记录器。