spring配置quartz1.6.4版本

1.首先配置quartz.xml:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">
<beans>
<!-- 被执行类 -->
<bean id="testQuarzt" class="com.sei.job.ScheduleInfoService">
<property name="scheduler" ref="schedulerFactory" />
</bean>


<!-- 将testQuarzt注入到job中 -->
<bean id="testQuartzJob" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
<property name="targetObject" ref="testQuarzt" />
<property name="targetMethod" value="loadJob" />
<property name="concurrent" value="false" />
</bean>


<!-- 将job注入到定时触发器 -->
<bean id="testTrigger" class="org.springframework.scheduling.quartz.CronTriggerBean">
<property name="jobDetail" ref="testQuartzJob" />
<property name="cronExpression">
<value>0/1 * * * * ?</value>
</property>
</bean>


<!-- 将触发器注入任务工程 -->
<bean id="schedulerFactory"  lazy-init="false" class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
<property name="triggers">
<list>
<ref bean="testTrigger" />
</list>
</property>
</bean>
</beans>

2.在web.xml中引入上述xml

3.ScheduleInfoService中调用loadJob,job中写入执行的任务

4.在controller中通过发请求的方式改变策略。

import java.text.ParseException;


import org.quartz.Scheduler;
import org.quartz.SchedulerException;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.quartz.CronTriggerBean;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody;
@Controller
public class TestController {
@Autowired
private Scheduler scheduler;
// 设值注入,通过setter方法传入被调用者的实例scheduler  
    public void setScheduler(Scheduler scheduler) {     
        this.scheduler = scheduler;     
    }    
@RequestMapping(value="/test1",method = RequestMethod.GET)
@ResponseBody
public String test1() throws SchedulerException, ParseException{
 CronTriggerBean trigger =  (CronTriggerBean)scheduler.getTrigger("testTrigger",Scheduler.DEFAULT_GROUP);
      trigger.setCronExpression("0/5 * * * * ?");  
      scheduler.rescheduleJob("testTrigger", Scheduler.DEFAULT_GROUP, trigger);  
      return "ok"; 
}


}

//可能出现注入失败等问题,对于配置文件,对于新手来说,不太懂springMVC得整个过程,就把配置文件都写成application*的形式,初始加载时都扫描了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Spring 5.1中,你可以使用XML配置来集成Quartz。下面是一个基本的XML配置示例: 首先,需要在你的Spring配置文件中,添加以下命名空间和schema location: ```xml xmlns:task="http://www.springframework.org/schema/task" http://www.springframework.org/schema/task http://www.springframework.org/schema/task/spring-task-5.1.xsd" xmlns:util="http://www.springframework.org/schema/util" http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-5.1.xsd" xmlns:quartz="http://www.springframework.org/schema/quartz" http://www.springframework.org/schema/quartz http://www.springframework.org/schema/quartz/spring-quartz-2.3.xsd" ``` 然后,可以配置Quartz的调度器和作业,例如: ```xml <bean id="jobDetail" class="org.springframework.scheduling.quartz.JobDetailFactoryBean"> <property name="jobClass" value="com.example.MyJob" /> <property name="jobDataAsMap"> <map> <entry key="key1" value="value1" /> <entry key="key2" value="value2" /> </map> </property> </bean> <bean id="jobTrigger" class="org.springframework.scheduling.quartz.CronTriggerFactoryBean"> <property name="jobDetail" ref="jobDetail" /> <property name="cronExpression" value="0 0/5 * * * ?" /> </bean> <bean class="org.springframework.scheduling.quartz.SchedulerFactoryBean"> <property name="triggers"> <list> <ref bean="jobTrigger" /> </list> </property> </bean> ``` 这个示例配置了一个名为"MyJob"的作业,并且每5分钟触发一次。你可以根据自己的需求进行配置

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值