サーバーと一緒に開始し、サーバーが強制終了されるまで終了しないサービスを開始したい。そのため、最初にServletContextListnerクラスを使用して、論理部分を実装し、を使用してメソッドを実行しました。
while(true){
try{ // do the jobs }
catch(Exception e){}
}
しかし、リスナークラスでこのジョブを実装するのは良くないと感じました。次に、1つのServiceManagerクラスに移動して同じジョブを実行しましたが、リスナークラスでは不可能なSpringを使用したプロパティの注入で優位に立つことができます。
しかし、このクラスをどこからどのように呼び出して、無限に実行される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 ****");
}
または、そのようなサービスを呼び出して実装し、抽象化せずにサーバーで永久に実行する方法[どのような場合でも、サーバーが停止しない限り、これを強制終了しないでください]