我在这个主题上看到了很多答案,但仍找不到一个干净的解决方案。如何使静态块运行?
public class ProcessScheduler {
static {
Timer timer=new Timer();
timer.scheduleAtFixedRate(new TimerTask() {
public void run() {
LogProcessorServiceImpl.processPageRequestsLogs();
}
}, 0, 120);
}
}
如何让这个执行并对质量解决方案感到满意?我的应用程序基于Spring(不幸),我知道我可以在我的一个控制器中引用这个类,它可能会工作。但这很愚蠢。必须有更好的方法。我在Tomcat上没有EJB支持,所以定时器注释不适用于我。另外,我不想做CRON。我想在此调度程序类中安排我所有的维护任务。
Servlet类可以通过web.xml(1)加载。我们可以在非servlet类上做类似的事吗?
静块上执行类的负载。它会在加载时执行,如果你不想要,你可能需要做一些类似于方法和调用的事情,那就是你想要的。 – kosa
方法调用仍然需要在其他地方引用此类。这同样很脏。这个调度程序应该是完全自治的。 – jacekn
@jacekn,为什么你的应用在春季运行不幸? Spring提供稳健的调度 – kolossus