定时器tasktimer
2024-08-25 21:27:23
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);
}
}
最新文章
- MySQL/MariaDB/PerconaDB-提权条件竞争漏洞
- JS设计模式(一)
- LintCode-Longest Increasing Subsequence
- hdu 4159 Indomie (DP,数学概率)
- Android开发之onClick事件的三种写法(转)
- git基本命令--status, add, diff, commit, log
- PVM的安装和编译PVM程序
- java(11)带参数的方法
- [批处理] Git中log的使用
- Easy methods to select MB Star, Extremely MB Star, MB SD C4, Mercedes BENZ C5 SD
- 小程序 新建项目底部tabbar
- Scala基础
- 强大的xargs
- 高级编程T-SQL函数
- python 生成器、列表解析式、yield、迭代器
- kali linux 基本命令(第一批)
- Java基本数据类型总结(转载)
- ES6--JavaScript的第六个版本
- 谷歌(Google)被墙,解决地图和字体无法显示的问题
- 数组去重的三种方法 es6
热门文章
- android 到底是什么决定了app的名称 application label activity label
- C#中Stack&;lt;T&;gt;类的使用及部分成员函数的源代码分析
- iOS UI03_LTView
- 2013:Audio Tag Classification - MIREX Wiki
- [办公自动化]excel工作簿内的表无法删除,单击右键无删除键
- 用jquery给元素动态绑定事件及样式
- Keil和IAR——使用笔记
- C#数字、16进制字符串和字节之间互转
- window安装Elasticsearch
- 编译Ruby2.0 问题解决