spring3不支持quartz2
1.业务调度的类(就是你想要做的事情的逻辑部门)
public class QuartzTest {
public void quartzTest(){
System.out.println("I Love You, zhuzhu");
}
}
2.写一个job
public class RunJob extends QuartzJobBean{
private QuartzTest quartztest;
public QuartzTest getQuartztest() {
return quartztest;
}
public void setQuartztest(QuartzTest quartztest) {
this.quartztest = quartztest;
}
@Override
protected void executeInternal(JobExecutionContext arg0)
throws JobExecutionException {
quartztest.quartzTest();
}
}
3.在xml中配置
<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-3.0.xsd">
//注册一个调度
<bean id="quartztest" class="quartz.test.manager.QuartzTest" />
<!-- Spring Quartz -->
//配置一个job,注意class中的类
<bean name="quartzJob" class="org.springframework.scheduling.quartz.JobDetailBean">
//name="jobClass"这个名字不能随便更改, value值就是写的job
<property name="jobClass" value="quartz.test.job.RunJob" />
<property name="jobDataAsMap">
<map>//key的值要与job的字段名称对应, value-ref是你注册的调度的id名称
<entry key="quartztest" value-ref="quartztest" />
</map>
</property>
</bean>
<!-- Cron Trigger, run every 5 seconds -->
//配置触发器,有两种方式,这是我喜欢的一种方式
<bean id="cronTrigger"
class="org.springframework.scheduling.quartz.CronTriggerBean">
//name="jobDetail"一样的name的值不可以随意改变, ref的值是注册的job的名字
<property name="jobDetail" ref="quartzJob" />
//配置的时间规则,每五秒钟跑一次任务
<property name="cronExpression" value="0/5 * * * * ?" />
</bean>
//配置调度工厂
<bean class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
<!-- <property name="jobDetails">
<list>
<ref bean="runMeJob" />
</list>
</property> -->
//name的值同样不要更改,把触发器的名字配置上
<property name="triggers">
<list>
<ref bean="cronTrigger" />
</list>
</property>
</bean>
</beans>
4.测试类
public class QuartzTestRun {
public static void main(String [] args){
new ClassPathXmlApplicationContext("Spring-Quartz.xml");
}
}