spring quartz触发器核心代码,直接可用

spring的quartz触发器核心为以下几部分:1.调度器( Scheduler)   2.触发器( Trigger)  3.具体内容( JobDetail)  在使用触发器以前 ,需配置xml文件,文件中会指出具体需要触发的类以及类里面的哪个方法,配置如下:

 

               XML中:

  1. <!-- 实例化bean -->  

  2. <bean id= "testMethodQuartz" class ="com.xy.utils.quartz.TestQuartz"/>  

  3.   

  4. <!-- 配置MethodInvokingJobDetailFactoryBean -->  

  5. <bean id= "testTaskMethod"  

  6. class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">  

  7.        <property name="targetObject" ref="testMethodQuartz"/>  

  8.        <property name="targetMethod" value="TestMethod"/>  

  9.        <property name="concurrent" value="false"/>  

  10. </bean>  

  11.   

  12. <!-- 配置定时表达式 -->  

  13. <bean id= "testTaskTrigger" class="org.springframework.scheduling.quartz.CronTriggerBean" >  

  14.        <property name="jobDetail" ref="testTaskMethod" />   

  15.       <!-- 每一分钟执行一次 -->   

  16.       <property name="cronExpression" value="0 0/1 * * * ?" />   (表达式,用于定义触发时间,秒 分 时 日 月 周 年)

  17. </bean>  

  18.   

  19. <!-- 配置调度工厂 -->  

  20. <bean id= "testSchedulerFactoryBean"  

  21.     class="org.springframework.scheduling.quartz.SchedulerFactoryBean">  

  22.        <property name="triggers" >  

  23.              <list>  

  24.                    <ref bean="testTaskTrigger" />  

  25.              </list>  

  26.        </property>  

  27. </bean>  

 

     JAVA中:

  • import org.joda.time.DateTime;  

  • import org.slf4j.Logger;  

  • import org.slf4j.LoggerFactory;  

  •   

  • /** 

  •  * 测试定时器类 

  •  * @author javaw 

  •  * 

  •  */  

  • public class TestQuartz {  

  •         

  •        public static Logger logger = LoggerFactory.getLogger(TestQuartz.class);    

  •        public void TestMethod(){  

  •             logger.info("Auto Execute TestMethod start! Date={}" ,new DateTime().toString("YYYY-MM-DD HH:mm:ss" ));  

  •             logger.info("**********测试跑批类************");  

  •             logger.info("Auto Execute TestMethod end! Date={}" ,new DateTime().toString("YYYY-MM-DD HH:mm:ss" ));  

  •       }  

  • }  

 

测试类中:

  1. public static void main(String[] args) {  

  2.       SchedulerFactoryBean schedulerFactoryBean = (SchedulerFactoryBean) SpringUtilsFromClassPathXml.getBean( "testSchedulerFactoryBean");  

  3.              //启动调度器  

  4.       schedulerFactoryBean.start();  

  5. }  

还有一种方法不用配置xml文件,可以直接调用触发器功能,

 

首先在配置文件头部的必须要有:

xmlns:task="http://www.springframework.org/schema/task"

其次xsi:schemaLocation必须为其添加:

http://www.springframework.org/schema/task

http://www.springframework.org/schema/task/spring-task.xsd

最后只需要在配置文件中加 <task:annotation-driven/>配置即可

在java中 需要使用触发器的类前面加上@Component注解

方法前面加上@Scheduled(cron = "*/5 * * * * ?")注解即可//每隔5秒执行一次

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值