【发布时间】:2016-07-10 21:10:25
【问题描述】:
好吧,我需要使用@Schedule (EJB) 将任务放入 crontab。我知道 CDI 没有这个(不开心),只有 EJB。我所有的bean都是CDI管理的,所以我对在这个项目中包含EJB有些疑问,希望你能帮助我:
1) 我将创建一个新的 bean 来使用 @Schedule,但我不知道这个 bean 应该使用 @Singleton (EJB) 还是 @Named + @RequestScoped (CDI)。我的想法是:
@Singleton
public class RoboFtp implements Serializable {
/**
*
*/
private static final long serialVersionUID = 1L;
@Inject
private VideoBOImpl videoBO;
@Schedule(...)
public void coletarVideo(){
//do something each 3 seconds
}
}
请注意,我在 EJB Bean 中有一个 CDI Bean,这可能吗?上面的这个豆子是正确的吗?
2) 如何将 ejb 添加到我的 pom.xml 中?
3) 如果我将 EJB 添加到我的项目中会不会有任何冲突?因为我的项目已经在生产中了。
【问题讨论】:
-
你能给我举个例子,如何只用 CDI 来做吗?
-
JDK 8 可以创建定时执行器,有什么问题?
-
我知道如何用 Spring 注入 bean。不知道如何对 CDI 做同样的事情,但我敢打赌它是相似的。
-
我没有使用 Spring。
-
我知道,但 Java EE 中的依赖注入实际上是由 Rod Johnson 编写的。我确定注释是相似的。创建其中之一并按照您的方式注入:docs.oracle.com/javase/8/docs/api/java/util/concurrent/…