可以检测应用程序何时在 Wildfly 中成功启动?

Possible to detect when application starts successfully in Wildfly?

有没有办法检测 war 文件何时被 Wildfly 成功加载并导致某些代码执行?

你有几个选择。

如果您正在利用 CDI,您可以为 @Observes @Initialized(ApplicationScoped.class) Object o 添加一个观察者方法 如果您正在利用 EJB,您可以使用 @javax.ejb.Singleton @javax.ejb.Startup@PostConstruct 方法来进行初始化。这里有两个示例实现。

// 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
    }
}

您可以使用 @Startup EJB。这将在应用程序成功部署后执行。