springboot 使用quartz+XML格式处理定时任务
网上查了许多关于springboot与quartz资料,发现使用XML配置的很少,简单整理了下,算是定时任务入门参考吧。
- 在pom.xml文件中,添加配置
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-quartz</artifactId> </dependency>
- 创建任务定时处理类 SysDataJob
package service; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.springframework.stereotype.Service; @Service public class SysDataJob { private final Log log = LogFactory.getLog(SysDataJob.class); public void deleteInfo() { log.info("Job start"); System.out.println("Job 数据处理"); } }
- 在resources文件下,创建quartz-config.xml
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd"> <!--定时删除数据库数据任务--> <!-- 配置Job类 --> <bean id="sysDataJob" class="service.SysDataJob"></bean> <!-- 配置JobDetail --> <bean id="springQtzJob" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean"> <!-- 执行目标job --> <property name="targetObject" ref="sysDataJob"></property> <!-- 要执行的方法 --> <property name="targetMethod" value="deleteInfo"></property> <property name="concurrent" value="false"></property><!--配置为false不允许任务并发执行--> </bean> <!-- 配置tirgger触发器 --> <bean id="cronTrigger1" class="org.springframework.scheduling.quartz.CronTriggerFactoryBean"> <!-- jobDetail --> <property name="jobDetail" ref="springQtzJob"></property> <!-- cron表达式,执行时间每10秒执行一次 --> <!-- 可以根据自己的需求指定执行时间 --> <property name="cronExpression" value="0/10 0/1 0/1 * * ? "></property> </bean> <!-- 配置调度工厂 --> <bean id="springJobSchedulerFactoryBean" class="org.springframework.scheduling.quartz.SchedulerFactoryBean"> <property name="triggers"> <list> <ref bean="cronTrigger1"></ref> <!-- <ref bean="cronTrigger2"></ref>--> </list> </property> </bean> </beans>
在应用程序启动时,添加注解,指定xml路径 @ImportResource("classpath:quartz-config.xml")
package com.howdy.quartzsimple; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.context.annotation.ImportResource; @SpringBootApplication @ImportResource("classpath:quartz-config.xml") public class QuartzSimpleApplication { public static void main(String[] args) { SpringApplication.run(QuartzSimpleApplication.class, args); } }
- 完整的目录结构,最后打印日志,是每10秒执行一次
源码下载:https://download.csdn.net/download/haojuntu/13184110
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律