Webプロジェクトの起動時にタイミングタスクまたはその他の方法を起動する
Webプロジェクトの起動時にタイミングタスクや他の方法を起動する必要がある場合があります.ここではlistenerを使用しています.コンテナがlistenerを起動してもspringがロードされていないため、オブジェクトを自動的に注入できません.
JAvaコード
web.xml構成
JAvaコード
package cn.resoft.dmps.plan.task;
import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
import org.springframework.context.ApplicationContext;
import org.springframework.web.context.support.WebApplicationContextUtils;
import cn.resoft.dmps.plan.service.TaskMain;
public class TimerStartTask implements ServletContextListener {
private TaskMain taskMain;
public void contextInitialized(ServletContextEvent event) {
ApplicationContext applicationContext = WebApplicationContextUtils
.getWebApplicationContext(event.getServletContext());
taskMain = (TaskMain) applicationContext.getBean("taskMain");
if (null == taskMain) {
taskMain = new TaskMain();
}
taskMain.startTimer(applicationContext);
}
public void contextDestroyed(ServletContextEvent sce) {
}
}
web.xml構成
<listener>
<listener-class>cn.resoft.dmps.plan.task.TimerStartTask</listener-class>
</listener>