假设我们有以下 class
public abstract class AbstractFoo {
@PostConstruct
private void doIt() {
//
}
}
public class Foo extends AbstractFoo {
@PostConstruct
private void doIt() {
//
}
}
什么时候调用AbstractFoo.doIt()和Foo.doIt()-顺序是什么?
最佳答案
相对于其在继承链中的位置, @PostConstruct
是在给定托管bean的初始化中最后执行的事情。从规格
容器必须确保:
在初始化由X或X的超类声明的所有注入字段之后,调用Bean的类型层次结构中的类X声明的
@PostConstruct
)。 @PostConstruct
回调都称为,称为。初始化。 专业提示:使用CDI 2.0,可以将you can use
@Inject
to declare an initializer method作为替代的@PostConstruct
,并限制在给定的类中只能包含一个。此处的区别在于@PostConstruct
仍最后执行,并且是可以保证所有注入的组件可用的唯一位置。关于java - @PostConstruct和继承的顺序,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/45906368/