首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >CDI后台服务

CDI后台服务
EN

Stack Overflow用户
提问于 2014-02-18 16:04:44
回答 1查看 206关注 0票数 0

我有一个带有CDI/Weld的Java应用程序(从org.jboss.weld.environment.se.StartMain开始,没有任何应用服务器)。在其中启动后台服务的正确方法是什么?

我尝试创建一个@Singleton bean,它观察ContainerInitialized事件(如下面所示),但我不确定容器何时会破坏这个服务bean。安全吗?有更好的办法吗?

代码语言:javascript
复制
@Singleton
public class BackgroundService {

    public void onStart(@Observes ContainerInitialized event) {
        // starting other threads etc.
    }
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-02-19 01:08:51

我个人会使用@ApplicationScoped而不是@Singleton。当容器关闭时,生命周期将关闭对象。如果您想启动一个线程,这将是一个可能的选择,将代码。

默认情况下,它不是异步的,因此您需要自己启动线程。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21859059

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档