Spring与自动调度任务
来源:优易学  2011-3-11 11:51:18   【优易学:中国教育考试门户网】   资料下载   IT书店
最近把以前设想做搜索引擎的想法再次提出来。刚入门4天吧。
  在想到建立索引的时候要用自动调度的方法。
  原因很简单,你的索引要更新的。所以想到了自动调度。当然那就想到了spring.下面是自己自动调度的一些学习。
  这里只采用jdk自带的timer进行的,准备在下篇文章中用Quartz调度器。
  首先建立你自己要运行的类。
  package com.duduli.li;
  public class Display {
  public void disp(){
  System.out.println("自动控制测试");
  }
  }
  一个简单的java bean,其中在这里你可以替换自己的任务。
  然后就是编写调度程序,这里要继承jdk中的TimerTask类,复写他的run方法。
  package com.duduli.li;
  import java.util.TimerTask;
  public class AutoRan extends TimerTask {
  //set方法是spring的DI
  private Display display;
  public void setDisplay(Display display) {
  this.display = display;
  }
  @Override
  public void run() {
  display.disp();
  }
  }
  然后就是重要的一步,编写applicationsContext.xml了。
  <?xml version="1.0" encoding="UTF-8"?>
  <beans
  xmlns="http://www.springframework.org/schema/beans"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd">
  <bean id="display"
  class="com.duduli.li.Display">
  </bean>
  <bean id="atuoRun"
  class="com.duduli.li.AutoRan">
  <property name="display" ref="display"></property>
  </bean>
  <bean id="aR"
  class="org.springframework.scheduling.timer.ScheduledTimerTask">
  <property name="timerTask" ref="atuoRun"></property>
  <!--
  period多长时间运行一次,delay表示允许你当任务第一次运行前应该等待多久
  -->
  <property name="period" value="5000"></property>
  <property name="delay" value="2000"></property>
  </bean>
  <bean id="test"
  class="org.springframework.scheduling.timer.TimerFactoryBean">
  <property name="scheduledTimerTasks">
   <list>
  <!--
  这里使用list,可以调度多个bean,
  -->
  <ref bean="aR"/>
  </list>
  </property>
  </bean>
  </beans>
  再来就是客户端调度了。
  package com.duduli.li;
  import org.springframework.beans.factory.BeanFactory;
  import org.springframework.context.support.ClassPathXmlApplicationContext;
  public class Client {
  public static void main(String[] args) {
  BeanFactory factory = new ClassPathXmlApplicationContext("applicationContext.xml");
  factory.getBean("test");
  }
  }

责任编辑:小草

文章搜索:
 相关文章
热点资讯
资讯快报
热门课程培训