spring定时器

spring还是以整合已有的框架为主,对于定时器(也有人叫触发器)分为两类,Java的Timer和第三方OpenSymphony的Quartz,这里讨论Quartz,因为它对时间的设置比较灵活。

在spring中,可以继承QuartzJobBean,也可以不做任何继承,当然写法也不一样,这里用的非继承的写法。

定时器的注册过程:1.创建bean,2.声明bean为一个定时器,3.设置任务时间,4.在调度中注册定时器

先看看spring用到的一些类:

org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean:声明定时器用的

org.springframework.scheduling.quartz.CronTriggerBean:设置时间

org.springframework.scheduling.quartz.SchedulerFactoryBean:总调度

先随便写个类

public class A{

public void test(){

//具体业务

}

}

1.创建bean

<bean name="aTask"class="A">
 </bean>

 2.声明bean为一个定时器

<bean name="aTaskMethodInvoking" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
  <property name="targetObject" ref="aTask" />

<!-- 启动定时器时执行的方法 -->
  <property name="targetMethod" value="test" />

<!-- 非并发定时器 -->
  <property name="concurrent" value="false" />
 </bean>

3.设置任务时间

 <bean name="aTaskTrigger" class="org.springframework.scheduling.quartz.CronTriggerBean">
  <property name="jobDetail" ref="aTaskMethodInvoking" />
  <property name="cronExpression">

<!-- 格式到网上查,这里是每分钟执行一次 -->
   <value>0 0/1 * * * ?</value>
  </property>
 </bean>

4.在调度中注册定时器

 <bean class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
  <property name="triggers">
   <list>
    <ref bean="aTaskTrigger" />
   </list>
  </property>
 </bean>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值