1
我在我的JEE应用程序中有2个单例,我想在启动时进行初始化。事情是这样的:@PostConstruct的执行顺序
@Singleton
@Startup
public class ServiceB {
@EJB
private ServiceA a;
@PostConstruct
private void init() {
....
}
}
ServiceB并不真正需要ServiceA,我只是说相关性,以确保ServiceA完全初始化(读:@ PostConstruct法完成)ServiceB的init()之前 - 方法开始。
但它不等。 ServiceB实际上是在ServiceA之前启动的。
是否有任何方法可以确保一个Bean的@ PostConstruct-方法等待另一个Bean的@ PostConstruct方法完成?
我知道我可以只取出@PostConstruct注释中ServiceA,直接从ServiceB
@PostConstruct init() {
a.init();
}
调用它,但我有部署中没有ServiceB。所以我不能依靠ServiceB来启动ServiceA。 ServiceA必须自己做。 ServiceB必须等待ServiceA完成。