1、监听器

在web.xml配置

   <!--  时间任务   -->
<listener>
<listener-class>
com.hk.common.timer.TimeListener
</listener-class>
</listener>

在java中使用

package com.hk.common.timer;

import javax.servlet.ServletContext;
import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
import com.hk.common.api.APi; /**
* 目的为了拿到 servletContext
*
* @author flm
* 2017年12月11日
*/
public class TimeListener implements ServletContextListener { //
@Override
public void contextInitialized(ServletContextEvent sce) { // 要处理的 事件 } @Override
public void contextDestroyed(ServletContextEvent arg0) {
// 对象销毁 时调用 } }

2、定时器

1、在特定时间执行任务,只执行一次  单位(毫秒)

public void schedule(TimerTask task,Date time)

2、在特定时间之后执行任务,只执行一次 单位(毫秒)

public void schedule(TimerTask task,long delay)

3、指定第一次执行的时间,然后按照间隔时间,重复执行 单位(毫秒)

public void schedule(TimerTask task,Date firstTime,long period)

4、在特定延迟之后第一次执行,然后按照间隔时间,重复执行 单位(毫秒)

public void schedule(TimerTask task,long delay,long period)

参数:

delay: 延迟执行的毫秒数,即在delay毫秒之后第一次执行

period:重复执行的时间间隔

5、第一次执行之后,特定频率执行,与3同

public void scheduleAtFixedRate(TimerTask task,Date firstTime,long period)

6、在delay毫秒之后第一次执行,后按照特定频率执行

public void scheduleAtFixedRate(TimerTask task,long delay,long period)

创建一个定时器任务

package com.hk.common.timer;

import java.util.Timer;
import javax.annotation.PostConstruct;
import javax.annotation.Resource;
import org.springframework.stereotype.Controller;
import com.hk.user.service.UserService; /**
* 定时器
* @author flm
* 2017年12月11日
*/
@Controller
public class TimerController { public static final long DELAY_TIME = 500; // 延时 时间执行(毫秒)
public static final long PERIOD_TIME = 300000; // 每隔 多少毫秒 执行(毫秒) @Resource private UserService userService; // 加载完类 加载此方法
@PostConstruct
public void init() { Timer timer = new Timer(); // 启动一个线程 执行任务
TimerManager task = new TimerManager(userService); // 安排指定的任务在指定的时间开始进行重复的固定延迟执行。
timer.schedule(task, DELAY_TIME, PERIOD_TIME);
}
}

创建一个线程 处理数据

package com.hk.common.timer;

import java.util.TimerTask;
import javax.servlet.ServletContext;
import org.apache.log4j.Logger;
import com.hk.common.api.APi;
import com.hk.user.service.UserService; public class TimerManager extends TimerTask { private static Logger log = Logger.getLogger(TimerTask.class); private UserService userService;
public TimerManager(UserService userService) {
this.userService=userService;
} @Override
public void run() {
try { System.out.println(servletContext.getAttribute("处理数据....")); } catch (Exception e) {
log.info("# -------------解析信息发生异常--------------");
e.printStackTrace();
}
} }

java监听器、定时器的使用的更多相关文章

  1. Java进阶(十八)Java实现定时器(Timer)

    Java实现定时器(Timer) 绪 在应用开发中,经常需要一些周期性的操作,比如每5分钟执行某一操作等.对于这样的操作最方便.高效的实现方式就是使用java.util.Timer工具类.java.u ...

  2. JAVA监听器原理

    http://blog.csdn.net/longyulu/article/details/25054697 JAVA监听器原理 标签: 监听器 2014-05-05 15:40 9070人阅读 评论 ...

  3. java Quartz定时器任务与Spring task定时的几种实现,

    java Quartz定时器任务与Spring task定时的几种实现 基于java 的定时任务实现, Quartz 时间详细配置    请查阅   http://www.cnblogs.com/si ...

  4. JAVA Timer定时器使用方法(二)

    JAVA  Timer 定时器测试 MyTask.java:package com.timer; import java.text.SimpleDateFormat;import java.util. ...

  5. JAVA监听器Listener

    JAVA监听器Listener 一. 简介 监听器用于对web中内置对象的状态或者属性变化进行监听并做出相应响应的一种Servlet;在内置对象的生命周期中,产生.销毁等状态发生变化时,监听器就会进行 ...

  6. java之定时器任务Timer用法

    在项目开发中,经常会遇到需要实现一些定时操作的任务,写过很多遍了,然而每次写的时候,总是会对一些细节有所遗忘,后来想想可能是没有总结的缘故,所以今天小编就打算总结一下可能会被遗忘的小点: 1. pub ...

  7. java中定时器总结

    java实现定时器的四种方式: 一. /** * 延迟20000毫秒执行 java.util.Timer.schedule(TimerTask task, long delay) */ public ...

  8. Java监听器Listener使用说明

    转载:http://blog.csdn.net/meng2602956882/article/details/13511587 1.什么是Java监听器 监听器也叫Listener,是Servlet的 ...

  9. JAVA Timer定时器使用方法

    JAVA  Timer 定时器测试 MyTask.java:package com.timer; import java.text.SimpleDateFormat;import java.util. ...

  10. Java监听器listener的介绍

    Java监听器listener的介绍 listener 能做什么 当web中某些动作发生之后,服务器就调用listener中对应的方法. 内部机制 接口回调 Web监听器 步骤 创建需要的监听器类,实 ...

随机推荐

  1. Surface 2装机必备软件指南

    新买的Surface到货了还不知道有什么用,每天就用来划划点点?有点太浪费了吧!跟哥走,哥给你推荐几款Surface 2装机必备的软件~应用商店,走起~ 初次使用看过来:Win8宝典 如果你是一个像我 ...

  2. CentOS 6.5 伪分布安装

    CentOS 6.5 伪分布安装 软件准备  jdk-6u24-linux-i586.bin .hadoop-1.2.1.tar.gz.hadoop-eclipse-plugin-1.2.1.jar ...

  3. java 判断手机号码和邮箱的正则表达式

    很多场合会用到判断输入框输入的是否为手机或者邮箱,下面是这个正则表达式: Pattern  patternMailBox  = Pattern .compile( "^([a-zA-Z0-9 ...

  4. npm 及安装

    一.npm nodejs使开发者摆脱了浏览器的束缚,一系列基于nodejs的应用和工具不断出现,无论是在node应用的开发,还是使用中,包管理都扮演着一个很重要的作用.NPM(node package ...

  5. 简单创建一个“嗨新房”的mac客户端

    下载地址:https://github.com/mapanguan/Mac_HiNewHouse                

  6. Python 高级编程——单例模式

    单例模式(Singleton Pattern)是一种常用的软件设计模式,该模式的主要目的是确保某一个类只有一个实例存在.当你希望在整个系统中,某个类只能出现一个实例时,单例对象就能派上用场. 在 Py ...

  7. WPF TreeView BringIntoViewBehavior

    由于项目需要,需要能够定位TreeView中的点,TreeView的节点数过多的情况下,即使找到了对应的节点并选中展示了,由于不在可视区域内,给用户的感觉还是不好,因此设计如下的Behavior,来实 ...

  8. 前台获取枚举的key值

    如: Enum ShowPosition { 首页 = 0,一级分类页 = 1,二级分类页 = 2 } 想获得汉字对应的数字,可用GetHashCode() html展示如下:循环枚举 @foreac ...

  9. .net程序和管理员权限的一些事

    1.对某个方法设置管理员权限运行(未考证)(假的,必须以管理员权限启动,不然报错) [PrincipalPermission(SecurityAction.Demand, Role = @" ...

  10. Mysql 经典案例总结(学习之前需要有Mysql基础)01

    Sql 经典案例 gb 4.2 ** 1 检索记录 (1) 主要介绍 Sql的基本SELECT查询语句 使用 SELECT * from 表 查询数据 查询该表的每一列数据 * 代表所有的意思 也可以 ...