tomcat启动后开启一个执行任务的线程
1、写一个类继承HttpServlet:FixedClientDataServlet
public class FixedClientDataServlet extends HttpServlet{
public void init() throws ServletException {
WebApplicationContext wac = ContextLoader.getCurrentWebApplicationContext();
BusinessService businessService = (BusinessService) wac.getBean("businessServiceImpl");
new Thread(new MyThread(businessService)).start();
}
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
}
@Override
public void destroy() {
}
}
2、创建执行任务的线程:MyThread
class MyThread implements Runnable{
private BusinessService businessService;
public MyThread(BusinessService businessService){
this.businessService = businessService;
}
@Override
public void run() {
while (true){
try{
System.out.println("开始执行任务!");
}catch(Exception e){
System.out.println("发生异常");
}
}
}
}
3、web.xml中添加的配置
<servlet>
<servlet-name>MyListener</servlet-name>
<servlet-class>FixedClientDataServlet的包名.类名</servlet-class>
<!-- 当值为0或者大于0时,表示容器在应用启动时就加载这个servlet -->
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>MyListener</servlet-name>
<url-pattern>/test</url-pattern>
</servlet-mapping>