applicationContext-scheduler的xml配置

  工作多年,作为一个Java程序员,做过了好多spring项目了,定时任务也做了好多次,但是每次都是这个配置文件老是忘,为什么呢,因为不善于也是懒于总结管理,老是以为自己记得住,其实他们的配置还是挺精细的。现在又做了一次定时器的任务,是间隔一段时间执行一个任务的,其实这样的简单定时,完全可以跑一个线程,或者用timer来实现,但是由于做的项目还有其他的要做定时处理,就用这个吧,spring的scheduler也是蛮强大的。

  首先,.spring配置文件中创建bean,创建schedule

       <bean id="schedule"    class="org.springframework.scheduling.quartz.SchedulerFactoryBean">

          <property name="triggers">

             <list>

              <ref bean="testTrigger"/>

             list>

         property>

    bean>  这里的id可以不要,因为用不到。

然后, spring配置文件中创建bean,创建你的triggers

       <bean id="testTrigger"   class="org.springframework.scheduling.quartz.CronTriggerBean">

         <property name="jobDetail" ref="testJobDetail" />

         <property name="cronExpression" value="0 1/5 * * * ?" />

     bean>  这里要把triggers的id设置为你已经创建的schedule的里面的ref bean那个名字用来调用它。

第三,spring配置文件中创建bean,指定定时器作用在那个类那个方法上面

 

       <bean id="testJobDetail"    class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">

         <property name="targetObject" ref="targetTestService" />

         <property name="targetMethod" value="dsrw" />

      bean>  这里bean的id要设置为上面triggers的ref的名字,保证关系对应。 这里的targetMethod要指定你要在实现的定时类的那个方法名字。

最后,还得把你作用的对象交Spring来管理,所以在spring配置文件中创建作用类的    bean

       <bean id="targetTestService"    class="com.jwx.fbde.biz.service.Test"   scope="prototype"> bean>

记得所有的bean 的id都不能相同,不然会报错,所以取名字还要注意点。

  建一个定时类,例如Test.java

  public class Test{

      //在类里定义一个定时的方法

     public void dsrw(){

       //这里实现你要做的东西了

     }


好吧,有不明白的留言,多多交流吧。

你可能感兴趣的:(java基础)