【发布时间】:2015-04-30 19:28:53
【问题描述】:
有没有办法检测一个war文件何时被Wildfly成功加载并导致一些代码执行?
【问题讨论】:
有没有办法检测一个war文件何时被Wildfly成功加载并导致一些代码执行?
【问题讨论】:
你有几个选择。
如果您使用 CDI,您可以为 @Observes @Initialized(ApplicationScoped.class) Object o 添加观察者方法
如果您使用 EJB,则可以使用带有 @PostConstruct 方法的 @javax.ejb.Singleton @javax.ejb.Startup 进行初始化。下面是两个示例实现。
// using a CDI object
@ApplicationScoped
public class SomeStartupBean {
public void initOnStartup(@Observes @Initialized(ApplicationScoped.class) Object obj) {
// do your start up logic here
}
}
或
// using an EJB
@Singleton
@Startup
public class SomeStartupSingleton {
@PostConstruct
public void initOnStartup() {
// do your start up logic here
}
}
【讨论】:
Object 是一个 servlet 上下文。
@PostConstruct 特别不应该带参数。
您可以使用@Startup EJB。这将在应用程序成功部署后执行。
【讨论】: