Spring 定时器的应用
今天说一下Spring中定时器的应用:
第一步:首先编写定时器需要调用的类:
public class TDProjectStateChangeTask {
// 公告操作
@Autowired
private IOnlineBiddingBusiness onlineBiddingBusiness;
public void finishedProject() {
onlineBiddingBusiness.changeProStage();
}
}
// 公告操作
@Autowired
private IOnlineBiddingBusiness onlineBiddingBusiness;
public void finishedProject() {
onlineBiddingBusiness.changeProStage();
}
}
第二步:
//设置 bean
<!--竞价自动结束项目定时器-->
<bean name="tcProjectFinishedTaskBean" class="glodon.td.quartz.TDProjectStateChangeTask" />
第三步:
//设置 bean //与spring job关联 别忘了<property name="targetMethod" value="finishedProject" />
<bean id="tdProjectTaskJobDetail"
class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
<property name="targetObject" ref="tcProjectFinishedTaskBean" />
<property name="targetMethod" value="finishedProject" />
</bean>
第四步:
//触发器
<bean id="tdProjectTrigger" class="org.springframework.scheduling.quartz.CronTriggerBean">
<property name="jobDetail" ref="tdProjectTaskJobDetail" />
<!-- 1分钟触发一次 -->
<property name="cronExpression" value="0 0/1 * * * ?" />
</bean>
<bean id="tdProjectTrigger" class="org.springframework.scheduling.quartz.CronTriggerBean">
<property name="jobDetail" ref="tdProjectTaskJobDetail" />
<!-- 1分钟触发一次 -->
<property name="cronExpression" value="0 0/1 * * * ?" />
</bean>
第五步:
启动调度器
<!-- 总管理类 如果将lazy-init='false'那么容器启动就会执行调度程序 -->
<bean lazy-init="false"
class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
<!-- 添加触发器 -->
<property name="triggers">
<list>
<ref local="tdProjectTrigger"/>
</list>
</property>
</bean>
<!-- end总管理类 -->
<bean lazy-init="false"
class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
<!-- 添加触发器 -->
<property name="triggers">
<list>
<ref local="tdProjectTrigger"/>
</list>
</property>
</bean>
<!-- end总管理类 -->
以上都是用ref来实现依赖的
本文详细介绍了Spring中定时器的应用过程,包括编写调用类、设置bean、触发器配置及启动调度器等步骤。

被折叠的 条评论
为什么被折叠?



