Java EE 7容器:在启动时初始化bean而不将其添加到beans.xml?

时间:2017-10-14 23:41:28

标签: java javabeans cdi java-ee-7

是否有任何bean类型或Java EE注释来在容器启动时初始化bean而不将bean添加到beans.xml?

2 个答案:

答案 0 :(得分:4)

是的,有。
这就是我在部署时使用单例,应用程序作用域bean时使用的内容:

import javax.ejb.Singleton;
import javax.ejb.Startup;
import javax.enterprise.context.ApplicationScoped;
import javax.inject.Named;
import javax.annotation.PostConstruct;

@Named( "myBean" )
@ApplicationScoped
@Startup
@Singleton
public class MyBean {
    @PostConstruct
    public void postConstruct() {}
}

如果除了初始化之外还需要执行任何代码,则会添加postConstruct方法。

答案 1 :(得分:2)

您可以使用Initializing Singleton Session Beans中显示的Singleton bean:

import javax.ejb.Singleton;
import javax.ejb.Startup;

@Startup
@Singleton
public class StartupBean {

}