覆盖/禁用@Startup类

时间:2018-09-08 12:59:46

标签: java dependency-injection ejb startup java-ee-8

我说的是Java EE应用程序和Wildfly应用程序服务器。 假设我有一个jar作为定义以下类的库:

@Singleton
@Startup
class StartupService {

    @PostConstruct
    public void onConstruct() {
        /* do something */
    }
}

现在,我有一个实际的战争项目(maven项目),该项目具有上述的jar作为依赖项。因此,当战争部署到Wildfly并开始启动时,将执行类StartupService

在我的实际项目中,有没有办法替代行为或禁用StartupService

1 个答案:

答案 0 :(得分:0)

尝试定义以下ejb-jar.xml:

<ejb-jar xmlns="http://java.sun.com/xml/ns/javaee" version="3.1"

    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/ejb-jar_3_1.xsd">

    <enterprise-beans>

        <session>

           <ejb-name>StartupService</ejb-name>

           <init-on-startup>false</init-on-startup>

        </session>

    </enterprise-beans>

</ejb-jar>

它必须位于WAR模块的WEB-INF目录中。我自己没有检查过,但是应该可以。