猿问

从应用程序开始的 CDI bean

有没有办法用应用程序启动 CDI Bean?


我有这个豆子:


@ApplicationScoped

@Named

public class MyBean implements Serializable {


    @Inject

    private Helper helper;


    @PostConstruct

    public void init() {

        helper.doThings();

    }


}

我希望这个 bean 在部署时从应用程序开始。


我正在使用weld-servlet 和tomcat7:


<dependency>

    <groupId>org.jboss.weld.servlet</groupId>

    <artifactId>weld-servlet</artifactId>

    <version>${weld-servlet.version}</version>

    <scope>compile</scope>

</dependency>


梦里花落0921
浏览 116回答 2
2回答

隔江千里

尝试:public void startup(@Observes @Initialized&nbsp;(ApplicationScoped.class) Object context){&nbsp; &nbsp; //your code here}这将确保该方法在启动时执行,并启动您的 bean。或者您可以使用 OmniFaces@Eager注释。

慕容3067478

确保您的 tomcat7 变体支持 CDI然后,@Startup@Singletonpublic class MyBean {&nbsp; &nbsp; @PostConstruct&nbsp; &nbsp; private void init() {&nbsp; &nbsp; &nbsp; &nbsp; // place your initialization code here&nbsp; &nbsp; }}
随时随地看视频慕课网APP

相关分类

Java
我要回答