Java 在应用程序范围的bean上的postconstruct方法上创建调度程序
在ApplicationScoped bean的PostConstruct方法上创建调度程序是否有效Java 在应用程序范围的bean上的postconstruct方法上创建调度程序,java,scheduled-tasks,cdi,java-ee-7,Java,Scheduled Tasks,Cdi,Java Ee 7,在ApplicationScoped bean的PostConstruct方法上创建调度程序是否有效 @ApplicationScoped public class myBean { private String name = "Soup of the day"; @Schedule(hour="0", persistent=false) @PostConstruct public void afterCreate() { System.out
@ApplicationScoped
public class myBean {
private String name = "Soup of the day";
@Schedule(hour="0", persistent=false)
@PostConstruct
public void afterCreate() {
System.out.println("Bean Created");
}
public String getName() {
return name;
}
public void setName(String name){
this.name = name;
}
}
带有
@Startup
注释(在类上)和@Schedule
注释(在方法上)的@Singleton
EJB应该足够了。您不需要使用@PostConstruct
,因为这将迫使您将单例EJB实例注入到某个地方(我假设这在您的用例中是不可能的)您试图通过此实现的目标是什么?您将获得在构造时和通过计时器调用的函数。@AlexNevidomsky。谢谢你的回复。我有soem数据库调用。我试着在应用程序启动时运行它们,而且每天晚上都这样。所以我想到了这个方法。你能帮我吗?我不明白,为什么不能让afterCreate()和onTimer()函数都调用databaseCall()来完成这项工作(而不是在afterCreate()上放置两个注释)?下面是一个按你的方式执行的示例: