java – @PostConstruct的执行顺序
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了java – @PostConstruct的执行顺序,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含970字,纯文字阅读大概需要2分钟。
内容图文
我的JEE应用程序中有2个单例,我想在启动时初始化.像这样的东西:
@Singleton
@Startup
public class ServiceB {
@EJB
private ServiceA a;
@PostConstruct
private void init() {
....
}
}
ServiceB并不真正需要ServiceA,我只是添加了依赖项以确保在ServiceB的init()-Method启动之前完全初始化ServiceA(读取:@ PostConstruct-method finished).
但它不等待. ServiceB实际上在ServiceA之前启动.
有没有办法确保一个Bean的@ PostConstruct-方法等待另一个Bean的@PostConstruct方法完成?
我知道我可以删除ServiceA中的@PostConstruct注释并直接从ServiceB调用它
@PostConstruct init() {
a.init();
}
但我有没有ServiceB的部署.所以我不能依靠ServiceB来初始化ServiceA. ServiceA必须自己做. ServiceB必须等待ServiceA完成.
解决方法:
使用@DependsOn批注声明对启动Bean的初始化依赖性.
例:
@Singleton
@Startup
public class ServiceA {
@PostConstruct
public void init() { ... }
}
@Singleton
@Startup
@DependsOn("ServiceA")
public class ServiceB {
@EJB
ServiceA a;
@PostConstruct
public void init() { ... } // will be called after a is initialized
}
内容总结
以上是互联网集市为您收集整理的java – @PostConstruct的执行顺序全部内容,希望文章能够帮你解决java – @PostConstruct的执行顺序所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。