很多情况下我们需要定时执行一些任务,这就需要用到定时器这个东东,定时器的实现有很多种方式,目前也有很多流行的框架提供了这种功能,今天我们介绍的这种方式是JDK自带的定时器:
下面以一个示例进行分析:
public calss TaskManager implements ServletContextListener {
private Timer timer;
public void contextInitialized(ServletContextEvent arg0) {
timer = new Timer("任务名称", true);
timer.schedule(new MyTask(), 0, 1000 * 10); // 10秒钟执行一次
}
public void contextDestroyed(ServletContextEvent arg0) {
timer.cancel(); // 定时器销毁
}
}
public class MyTask extends TimerTask {
@Override
public void run() {
System.out.println("执行任务......");
// 这里写你要定期执行的任务
}
}
TaskManager为监听器,根据timer.schedule()方法中提供的参数定期执行自定义的任务MyTask,MyTask类为自定义任务类,监听器会根据时间设置调用MyTask类中的run()方法。在大型的应用环境中,我们可以将任务定义在另外的类中,比如service等,而在run()方法中调用service的方法。
另外需要配置web.xml文件,加入<listener>节,示例如下:
<listener>
<listener-class>包名.TaskManager</listener-class>
</listener>
分享到:
相关推荐
Spring框架作为Java领域广泛使用的轻量级框架,提供了与JDK定时器结合以及集成第三方库如Quartz的方式,来实现定时任务。本篇文章将详细探讨“spring+jdk定时器”的实现方式。 首先,我们来看JDK自带的定时器——`...
Java中的JDK定时器是基于`java.util.Timer`和`java.util.TimerTask`这两个类实现的,它们提供了在特定时间点或周期性地执行任务的能力。`Timer`类是一个抽象的基类,它负责调度任务的执行,而`TimerTask`则是一个...
Java开发工具包(JDK)中的`Timer`类是一个实用工具类,用于调度周期性或一次性任务。在Java编程中,我们经常需要执行一些任务,这些任务需要在特定的时间点或者按照一定的间隔重复执行,例如更新进度条、心跳检测、...
Spring框架提供了一套强大的定时任务解决方案,而JDK自带的`TimerTask`类则是实现定时任务的基础工具。本文将深入探讨如何在Spring框架中结合JDK的`TimerTask`来创建和管理定时任务。 ### Spring定时任务简介 ...
JDK 自带的定时器(`java.util.Timer` 类)是一种强大的工具,允许开发者安排任务在后台线程中按特定时间或周期性地执行。它为应用程序提供了灵活的调度功能,比如延迟执行、周期性执行等。下面我们将深入探讨 `...
- **兼容性**:Spring框架没有重新发明轮子,而是充分利用了现有的技术如多种ORM框架、日志框架、JEE、Quartz 和 JDK定时器等。 #### 三、使用Spring框架的好处 - **POJO支持**:Spring允许开发者使用普通的Java...
Java定时器,全称为`java.util.Timer`类和配套的`TimerTask`类,是Java标准库中提供的一种定时执行任务的工具。这个强大的计时器功能强大,尤其适合于批量处理任务,如数据同步、日志清理等场景,因此在IT行业中被...
定时器。 使用它,可以定时提醒,你要做的事情。 不过要安装jdk
例如,`java.util`包包含了集合框架、I/O流、定时器等常用类,而`java.awt`和`javax.swing`包则包含了图形用户界面相关的组件。 **总结** JDK8 API中文版文档教程是Java开发者的重要参考资料,它详细记录了JDK8的...
在描述中提到的版本问题,`commons-collections-3.2`相对于`3.1`的主要改进可能包括性能优化、bug修复以及对新JDK特性的支持。确保使用最新版本的库可以提高应用程序的稳定性和兼容性。在Spring项目中,通常会将所有...
JMeter 5.2版本包含了性能提升、新功能和错误修复,如图形结果视图的改进、更灵活的定时器配置等。它可以帮助开发者评估应用在高负载下的性能,找出可能的瓶颈。 5. **Ant 1.10.14**: Apache Ant是一种基于XML的...
本文档提供了从JDK安装、Tomcat安装配置、数据库连接以及Java定时器实现的完整流程,适合初学者快速入门。通过详细的步骤说明与示例代码,帮助读者理解每一个环节的关键技术点。特别是对于数据库操作的封装,极大...
基于代理的AOP主要使用JDK动态代理或CGLIB库来创建代理对象,而基于字节码的AOP则使用AspectJ库,可以在编译时或运行时修改字节码来实现切面。 `@Aspect`注解用于定义一个切面,其中可以包含多个通知方法。`@Before...
**JMeter + JDK1.8 知识点详解** 标题中的 "Jmeter+Jdk1.8.zip" 暗示这是一个包含 JMeter 和 JDK 1.8 的压缩包,这意味着用户可以在这个压缩包中找到运行 JMeter 所需的 Java 运行环境以及 JMeter 工具本身。JMeter...
它允许开发者在应用中安排周期性任务的执行,无需直接依赖底层的调度实现,如 Quartz 或者 JDK 的 Timer。接下来,我们将深入探讨Spring定时器的相关知识点。 一、Spring定时器基础 1. **TaskExecutor接口**:这是...
桌面闹钟提醒!小应用程序 java JDK,jmf
此时,可以利用Java的动态代理(如JDK Proxy或CGLIB)在运行时为任务类生成代理,拦截并扩展方法调用。 4. **CGLIB动态代理** - **CGLIB简介**:CGLIB是一个强大的高性能的代码生成库,它在许多AOP框架中被使用,...
某个功能执行需要的时间比较长,则决定采用定时器的方式,每隔一段时间系统自动执行此功能,当界面真正触发时,只需要简单的读取结果,而不需要执行复杂的逻辑判断.那如何实现此功能呢?要想实现它,首先我们需要...
- `ScheduledExecutorService` 是 Java Concurrency API(JDK 5.0 引入)的一部分,提供了更强大、更灵活的定时任务管理能力。 - 通过实现此接口的类,如 `ScheduledThreadPoolExecutor`,可以创建一个线程池,...
java8集合源码定时器和定时器任务 定时器是线程调度任务以在后台线程中执行的工具。 任务可以安排为一次性执行,或定期重复执行。 与每个 Timer 对象相对应的是一个单独的后台线程,用于按顺序执行所有计时器的任务...