我想启动一个与服务器一起启动的服务,直到服务器被杀死才结束。所以首先我使用了 ServletContextListner 类,我在其中实现了我的逻辑部分来运行该方法
while(true){
try{ // do the jobs }
catch(Exception e){}
}
但是后来我觉得在 Listener 课上实现这个工作并不好。然后我转移到一个 ServiceManager 类并做同样的工作,但让我在使用 Spring 注入属性方面具有优势,这在 Listener 类中是不可能的。
但是关于如何更好/从哪里调用这个类并调用无限运行的 startService 方法的基本问题。
public void contextInitialized(ServletContextEvent event) {
logger.info(" *** START MyListener ****");
context = event.getServletContext();
ClassPathXmlApplicationContext ctx = new ClassPathXmlApplicationContext("spring/applicationContext.xml");
MyServiceManager serviceManager = (MyServiceManager) ctx.getBean("myServiceManager");
serviceManager.startService();
logger.info(" *** END MyListener ****");
}
或任何想法如何调用/实现此类服务以在没有任何抽象的情况下永远在服务器中运行[在任何情况下,除非服务器停止,否则不应将其杀死]