Spring框架中如何详细实现监听器和定时任务?

2026-05-24 12:051阅读0评论SEO基础
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计388个文字,预计阅读时间需要2分钟。

Spring框架中如何详细实现监听器和定时任务?

背景:在原SSM项目中,假设每晚23:59:59执行一个批处理任务。

设计思路:利用JDK自带的定时器触发任务执行,设置下次执行间隔为24小时。定时任务由Spring的监听器启动。

JDK版本:未提供

Spring框架中如何详细实现监听器和定时任务?

背景:在原SSM项目中,拟定在每晚的23:59:59执行一个批处理任务。

设计思路:用jdk自带的定时器触发任务执行,设置下次执行间隔为24小时。定时任务由spring的监听器去启动。

jdk版本:1.8.0

上代码

web.xml,添加监听

<listener> <listener-class>com.test.listener.Listener</listener-class> </listener>

添加监听类

import com.test.timmer.TimmerTest; import javax.servlet.ServletContextEvent; import javax.servlet.ServletContextListener; import java.util.Calendar; import java.util.Timer; public class Listener implements ServletContextListener { public void contextInitialized(ServletContextEvent sce) { System.out.println("启动监听。。。。。。。。。。。。。。。。。"); //定时器 Timer timer = new Timer(); //定时任务对象 TimmerTest task = new TimmerTest(); //指定到23:59:59 Calendar calendar = Calendar.getInstance(); calendar.set(Calendar.HOUR_OF_DAY,23); calendar.set(Calendar.MINUTE,59); calendar.set(Calendar.SECOND,59); //每天的23:59:59秒执行任务,下次执行延迟时长为24小时 timer.schedule(task, calendar.getTime(), 24*60*60*1000); } public void contextDestroyed(ServletContextEvent sce) { } }

添加定时任务实例,jdk的定时任务类需继承 java.util.TimerTask 抽象类

package com.test.timmer; import java.text.SimpleDateFormat; import java.util.Date; import java.util.TimerTask; public class TimmerTest extends TimerTask { public void run() { Date dt = new Date(); SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH时mm分ss秒"); System.out.println(sdf.format(new Date())+",执行定时任务"); } }

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持易盾网络。

本文共计388个文字,预计阅读时间需要2分钟。

Spring框架中如何详细实现监听器和定时任务?

背景:在原SSM项目中,假设每晚23:59:59执行一个批处理任务。

设计思路:利用JDK自带的定时器触发任务执行,设置下次执行间隔为24小时。定时任务由Spring的监听器启动。

JDK版本:未提供

Spring框架中如何详细实现监听器和定时任务?

背景:在原SSM项目中,拟定在每晚的23:59:59执行一个批处理任务。

设计思路:用jdk自带的定时器触发任务执行,设置下次执行间隔为24小时。定时任务由spring的监听器去启动。

jdk版本:1.8.0

上代码

web.xml,添加监听

<listener> <listener-class>com.test.listener.Listener</listener-class> </listener>

添加监听类

import com.test.timmer.TimmerTest; import javax.servlet.ServletContextEvent; import javax.servlet.ServletContextListener; import java.util.Calendar; import java.util.Timer; public class Listener implements ServletContextListener { public void contextInitialized(ServletContextEvent sce) { System.out.println("启动监听。。。。。。。。。。。。。。。。。"); //定时器 Timer timer = new Timer(); //定时任务对象 TimmerTest task = new TimmerTest(); //指定到23:59:59 Calendar calendar = Calendar.getInstance(); calendar.set(Calendar.HOUR_OF_DAY,23); calendar.set(Calendar.MINUTE,59); calendar.set(Calendar.SECOND,59); //每天的23:59:59秒执行任务,下次执行延迟时长为24小时 timer.schedule(task, calendar.getTime(), 24*60*60*1000); } public void contextDestroyed(ServletContextEvent sce) { } }

添加定时任务实例,jdk的定时任务类需继承 java.util.TimerTask 抽象类

package com.test.timmer; import java.text.SimpleDateFormat; import java.util.Date; import java.util.TimerTask; public class TimmerTest extends TimerTask { public void run() { Date dt = new Date(); SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH时mm分ss秒"); System.out.println(sdf.format(new Date())+",执行定时任务"); } }

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持易盾网络。