为了账号安全,请及时绑定邮箱和手机立即绑定

从应用程序开始的 CDI bean

从应用程序开始的 CDI bean

梦里花落0921 2021-07-23 18:15:07
有没有办法用应用程序启动 CDI Bean?我有这个豆子:@ApplicationScoped@Namedpublic 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>
查看完整描述

2 回答

?
隔江千里

TA贡献1906条经验 获得超10个赞

尝试:


public void startup(@Observes @Initialized 

(ApplicationScoped.class) Object context){

    //your code here

}

这将确保该方法在启动时执行,并启动您的 bean。


或者您可以使用 OmniFaces@Eager注释。


查看完整回答
反对 回复 2021-07-29
?
慕容3067478

TA贡献1773条经验 获得超3个赞

确保您的 tomcat7 变体支持 CDI然后,


@Startup

@Singleton

public class MyBean {

    @PostConstruct

    private void init() {

        // place your initialization code here

    }

}


查看完整回答
反对 回复 2021-07-29
  • 2 回答
  • 0 关注
  • 115 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信