spring quartz定时器

本文介绍如何使用Spring整合Quartz实现定时任务。首先需要下载Quartz并配置到Spring环境中。通过定义业务类、指定调用方法及触发模式,可以设置定时任务的执行逻辑。文章还详细解释了cronExpression表达式的含义。

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

定时任务的实现有很多种,这里说的是spring整合的quartz定时器

首先要下载quartz.jar 同时有spring的环境

在spring的配置文件中加入如下配置

<beans>     
    <!-- 第一步: 配置好要定时调用的业务类 -->   
    <bean id="showMsg" class="com.liu.test.spring.timer.Timer" />   
    <!-- 第二步: 定义好具体要使用类的哪一个业务方法 -->   
    <bean id="workDetail" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">   
        <!-- 目标bean -->   
        <property name="targetObject" ref="showMsg"/>   
        <!-- 要执行目标bean的哪一个业务方法 -->   
        <property name="targetMethod" value="Printlog"/>   
        <!-- 是否并发 -->   
        <property name="concurrent" value="false"/>   
    </bean>   
    <!-- 第三步: 定义好调用模式: 如每隔5秒钟调用一次或每天的哪个时间调用一次等 -->   
    <bean id="msgTrigger" class="org.springframework.scheduling.quartz.CronTriggerBean">   
        <property name="jobDetail" ref="workDetail"/>   
        <property name="cronExpression">
             <value>*/5 * * * * ? </value>  
        </property>
    </bean>   
    <!--第四步 把定义好的任务放到调度(Scheduler)工厂里面,注意这里的ref bean -->   
    <bean  class="org.springframework.scheduling.quartz.SchedulerFactoryBean">   
        <property name="triggers">   
            <list>   
                <ref bean="msgTrigger"/>   
            </list>   
        </property>   
    </bean>   
</beans> 


附:cronExpression表达式解释:

字段  允许值  允许的特殊字符

 秒 0-59 , - * /

分 0-59 , - * /

小时 0-23 , - * /

日期 1-31 , - * ? /

L W C 月份 1-12 或者 JAN-DEC , - * /

星期 1-7 或者 SUN-SAT , - * ? /

L C # 年(可选) 留空, 1970-2099 , - * /

0 0 12 * * ?---------------在每天中午12:00触发

0 15 10 ? * *---------------每天上午10:15 触发

0 15 10 * * ?---------------每天上午10:15 触发

0 15 10 * * ? *---------------每天上午10:15 触发

0 15 10 * * ? 2005---------------在2005年中的每天上午10:15 触发

0 * 14 * * ?---------------每天在下午2:00至2:59之间每分钟触发一次

0 0/5 14 * * ?---------------每天在下午2:00至2:59之间每5分钟触发一次

0 0/5 14,18 * * ?---------------每天在下午2:00至2:59和6:00至6:59之间的每5分钟触发一次

0 0-5 14 * * ?---------------每天在下午2:00至2:05之间每分钟触发一次

0 10,44 14 ? 3 WED---------------每三月份的星期三在下午2:00和2: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, 2003, 2004 and 2005年的每个月的最后一个星期五的上午10:15触发

0 15 10 ? * 6#3---------------在每个月的第三个星期五的上午10:15触发

0 0 12 1/5 * ?---------------从每月的第一天起每过5天的中午12:00时触发

0 11 11 11 11 ?---------------在每个11月11日的上午11:11时触发.­

参考资料:1.http://www.springframework.org

Spring的官方网站2.http://www.opensymphony.com/quartz/ Quartz的官方网站



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值