1.配置模版
1.1在配置定时器的xml配置文件中加入以下代码:
<!-- 自定义定时器任务-->
<bean id="自定义定时任务id" class="org.springframework.scheduling.quartz.CronTriggerFactoryBean">
<property name="jobDetail" ref="自定义jobDetail的id名称" />
<property name="cronExpression" value="0 0 12 ? * MON" /><!-- 每周一中午12点更新 -->
</bean>
<bean id="自定义jobDetail的id名称" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
<property name="targetObject" ref="对应的类名"/>
<property name="targetMethod" value="类中对应的方法名称"/>
<property name="concurrent" value="false"/>
<!-- 是否允许任务并发执行。当值为false时,表示必须等到前一个线程处理完毕后才再启一个新的线程 -->
</bean>
<!-- 自定义定时器任务 end-->
1.2在第一步中的xml文件中配置触发器
<!--触发器的管理器(在列表中添加定义的触发器) -->
<bean id="schedulerFactory" class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
<property name="triggers">
<!-- 定时器任务列表 -->
<list>
<ref bean="第一步中的自定义定时任务id" /> <!-- 自定义定时器任务 -->
</list>
</property>
</bean>
2.实例说明
2.1xml配置文件中的配置
<!-- 自定义定时器任务-->
<bean id="myTask" class="org.springframework.scheduling.quartz.CronTriggerFactoryBean">
<property name="jobDetail" ref="myJobDetail" />
<property name="cronExpression" value="0 0 12 ? * MON" /><!-- 每周一中午12点更新 -->
</bean>
<bean id="myJobDetail" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
<property name="targetObject" ref="myJob"/>
<property name="targetMethod" value="doSomeWork"/>
<property name="concurrent" value="false"/>
<!-- 是否允许任务并发执行。当值为false时,表示必须等到前一个线程处理完毕后才再启一个新的线程 -->
</bean>
<!-- 自定义定时器任务 end-->
2.2业务类
@Repository
public class MyJob implements ISchedulerJob{
@Override
public void execute() throws Exception{
//必须
}
public void doSomeWork() throws Exception{
//在这方法中实现自己的业务
}
}