基于spring+quartz开发定时器

本文介绍如何使用Spring框架结合Quartz实现定时任务的功能。主要内容包括引入必要的Jar包、开发定时器类、配置定时任务等步骤,并详细展示了配置文件context-trigger.xml的内容及定时表达式的含义。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、准备Jar包
在Spring所有包齐全的前提下还要导入一个定时器工具包:quartz-1.6.2.jar
2.开发定时器类,实例代码如下: public class TriggerUtil {
private TriggerUtil(){

}
public void expDataBase(){
System.out.println("trigger actived..");
}
}
3.配置定时任务
为了清晰代码结构,单独建立一个配置定时任务的配置文件context-trigger.xml,并在applicationContext.xml进行import:
<import resource="context-trigger.xml"/>
context-trigger.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-2.0.xsd">
<!-- 定时器配置 -->
<!-- 配置定时器类 -->
<bean id="triggerUtil" class="com.pro.base.util.TriggerUtil" >
</bean>
<!-- 指定任务(方法) -->
<bean id="BaseJob" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
<property name="targetObject">
<ref local="triggerUtil" />
</property>
<property name="targetMethod">
<value>expDataBase</value>
</property>
</bean>
<!-- 设定计划执行时间 -->
<bean id="expDataBaseTrigger"
class="org.springframework.scheduling.quartz.CronTriggerBean">
<property name="jobDetail">
<ref local="expDataBaseJob" />
</property>
<property name="cronExpression">
<value>00 33 21 * * ?</value>
</property>
</bean>
<!-- 任务执行器配置 -->
<bean class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
<property name="triggers">
<list>
<ref local="BaseTrigger" />
</list>
</property>
</bean>
</beans>

附:定时时间配置说明
0 0 12 * * ? 每天中午12点触发
0 15 10 ? * * 每天上午10:15触发
0 15 10 * * ? 每天上午10:15触发
0 15 10 * * ? * 每天上午10:15触发
0 15 10 * * ? 2005 在2005这一年中每天上午10:15触发
0 * 14 * * ? 每天下午14:00到15:00之间,每1分钟触发一次
0 0/5 14 * * ? 每天下午14:00到14:55之间,每5分钟触发一次
0 0/5 14,18 * * ? 每天的14:00~14:55和18:00~18:55之间,每5分钟触发一次
0 0-5 14 * * ? 每天的14:00~14:05之间,每1分钟触发一次
0 10,44 14 ? 3 WED 3月的每周三的14:10和14:44触发
0 15 10 ? * MON-FRI 每周周一到周五的10:15触发
0 15 10 15 * ? 每月15日的10:15触发
0 15 10 L * ? 每月最后一天的10:15触发
0 15 10 ? * 6L 每月的最后一个周五的10:15触发
0 15 10 ? * 6L 2002-2005 在2002到2005之间,每月的最后一个周五的10:15触发
0 15 10 ? * 6#3 每月的第三个星期五的10:15触发
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值