1、web.xml中配置

<servlet>
<servlet-name>TaskTimer</servlet-name>
<servlet-class>com.XXXXX.controller.TaskTimer</servlet-class>
<load-on-startup>2</load-on-startup>
</servlet>

2、写实现方法

package com.XXX.controller;

import java.util.Date;
import java.util.Timer;
import java.util.TimerTask; import javax.servlet.http.HttpServlet; public class TaskTimer extends HttpServlet{ private static final long serialVersionUID = 1L; public void init(){
Timer timer = new Timer();
timer.schedule(new TimerTask() {
public void run() {
System.out.println(new Date()+"-----Hello !!!");
}
}, 1000*5, 1000*3);//第二个参数为多少毫秒后启动,第三个参数为每个多少毫秒执行一次
}
}

若在TaskTimer中调用service,用@Autowired注入,启动项目会报空指针错误,原因及分析可查看此文档

因此对代码进行修改

package com.XXXX.controller;

import java.util.Date;
import java.util.List;
import java.util.Map;
import java.util.Timer;
import java.util.TimerTask; import javax.servlet.ServletContextEvent;
import javax.servlet.http.HttpServlet; import org.springframework.stereotype.Controller;
import org.springframework.web.context.WebApplicationContext;
import org.springframework.web.context.support.WebApplicationContextUtils; @Controller
public class TaskTimer extends HttpServlet{
private static final long serialVersionUID = 1L; public void init(){
final ServletContextEvent sce = new ServletContextEvent(getServletContext());

Timer timer = new Timer();
timer.schedule(new TimerTask() {
//获得Spring容器
WebApplicationContext ctx = WebApplicationContextUtils.getWebApplicationContext(sce.getServletContext());
//从Spring容器中获得SelectDataServlet的实例
private Service service = ctx.getBean(service.class);public void run() {
System.out.println("已经开始跑定时器");
          //定时器主体,此处可调用service实体
}
}, 1000*5, 1000*60*60*24);
}
}

最新文章

  1. MySQL/MariaDB/PerconaDB-提权条件竞争漏洞
  2. JS设计模式(一)
  3. LintCode-Longest Increasing Subsequence
  4. hdu 4159 Indomie (DP,数学概率)
  5. Android开发之onClick事件的三种写法(转)
  6. git基本命令--status, add, diff, commit, log
  7. PVM的安装和编译PVM程序
  8. java(11)带参数的方法
  9. [批处理] Git中log的使用
  10. Easy methods to select MB Star, Extremely MB Star, MB SD C4, Mercedes BENZ C5 SD
  11. 小程序 新建项目底部tabbar
  12. Scala基础
  13. 强大的xargs
  14. 高级编程T-SQL函数
  15. python 生成器、列表解析式、yield、迭代器
  16. kali linux 基本命令(第一批)
  17. Java基本数据类型总结(转载)
  18. ES6--JavaScript的第六个版本
  19. 谷歌(Google)被墙,解决地图和字体无法显示的问题
  20. 数组去重的三种方法 es6

热门文章

  1. android 到底是什么决定了app的名称 application label activity label
  2. C#中Stack&amp;lt;T&amp;gt;类的使用及部分成员函数的源代码分析
  3. iOS UI03_LTView
  4. 2013:Audio Tag Classification - MIREX Wiki
  5. [办公自动化]excel工作簿内的表无法删除,单击右键无删除键
  6. 用jquery给元素动态绑定事件及样式
  7. Keil和IAR——使用笔记
  8. C#数字、16进制字符串和字节之间互转
  9. window安装Elasticsearch
  10. 编译Ruby2.0 问题解决