在网上比较流行的一段配置:
<?xmlversion="1.0"encoding="UTF-8"?>
<beansxmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:tx="http://www.springframework.org/schema/tx"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop-2.0.xsd
http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx-2.0.xsd"
default-autowire="no"default-lazy-init="false">
<beanid="someData"class="com.spring.job.JobData"/>
<beanid="jobDetailBean"
class="org.springframework.scheduling.quartz.JobDetailBean">
<propertyname="jobClass"
value="com.spring.job.DemoJob"/>
<propertyname="jobDataAsMap">
<map>
<entrykey="jobData"value-ref="someData"/>
</map>
</property>
</bean>
<beanid="jobDetailBean2"
class="org.springframework.scheduling.quartz.JobDetailBean">
<propertyname="jobClass"
value="com.spring.job.DemoJob2"/>
<propertyname="jobDataAsMap">
<map>
<entrykey="jobData"value-ref="someData"/>
</map>
</property>
</bean>
<beanid="simpleTriggerBean"
class="org.springframework.scheduling.quartz.SimpleTriggerBean">
<propertyname="jobDetail"ref="jobDetailBean"/>
<propertyname="repeatInterval"value="500000"/>
<propertyname="startDelay"value="10000"/>
</bean>
<beanid="simpleTriggerBean2"
class="org.springframework.scheduling.quartz.SimpleTriggerBean">
<propertyname="jobDetail"ref="jobDetailBean2"/>
<propertyname="repeatInterval"value="100000"/>
<propertyname="startDelay"value="10000"/>
</bean>
<beanid="schedulerFactoryBean"
class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
<propertyname="triggers">
<list>
<refbean="simpleTriggerBean"/>
<refbean="simpleTriggerBean2"/>
</list>
</property>
</bean>
</beans>
另外一个配置的例子,这个例子是有注释的:
- <?xml version="1.0" encoding="UTF-8"?>
- <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">
- <beans>
- <!--起动Bean-->
- <bean id="z" class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
- <property name="triggers">
- <list>
- <ref bean="cronReportTrigger"/>
- </list>
- </property>
- </bean>
- <!--实际的工作Bean-->
- <bean id="courseService" class="com.spring.helloworld.CourseService"></bean>
- <!--jobBean用于设定启动时运用的Bean与方法-->
- <bean id="scheduledReportJobDetail"
- class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
- <property name="targetObject">
- <ref bean="courseService"/>
- </property>
- <property name="targetMethod">
- <value>sendCourseEnrollmentReport</value>
- </property>
- </bean>
- <!--定时器设定起动频率&启动时间我设的是每5秒起动一次 (0 0 4 * * ?每日四点起动....)-->
- <bean id="cronReportTrigger"
- class="org.springframework.scheduling.quartz.CronTriggerBean">
- <property name="jobDetail"><ref bean="scheduledReportJobDetail"/>
- </property>
- <property name="cronExpression"><value>10,15,20,25,30,35,40,45,50,55 * * * * ?</value>
- </property>
- </bean>
- </beans>
后面的这个配置就觉得很简单,直接在创建一个接口和实现类就可以了。甚至不必去创建,用原来的相信也应该可以的。
对于这个问题,我在完成当前的工作以后,一定会做出一个更为详细的文章出来。