熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> Java編程 >> Java開源技術 >> 正文

Spring與自動調度任務

2022-06-13   來源: Java開源技術 

  最近把以前設想做搜索引擎的想法再次提出來剛入門天吧

  在想到建立索引的時候要用自動調度的方法

  原因很簡單你的索引要更新的所以想到了自動調度當然那就想到了spring下面是自己自動調度的一些學習

  這裡只采用jdk自帶的timer進行的准備在下篇文章中用Quartz調度器

  首先建立你自己要運行的類

package comdudulili;

public class Display {

    public void disp(){
        Systemoutprintln(自動控制測試);
    }
}

  一個簡單的java bean其中在這裡你可以替換自己的任務

  然後就是編寫調度程序這裡要繼承jdk中的TimerTask類復寫他的run方法

package comdudulili;

import javautilTimerTask;

public class AutoRan extends TimerTask {
    //set方法是spring的DI
    private Display display;
   
    public void setDisplay(Display display) {
        thisdisplay = display;
    }
    @Override
    public void run() {
        displaydisp();
    }
}

  然後就是重要的一步編寫applicationsContextxml了

<?xml version= encoding=UTF?>
<beans
    xmlns=http://wwwspringframeworkorg/schema/beans
    xmlns:xsi=http://wwwworg//XMLSchemainstance
    xsi:schemaLocation=http://wwwspringframeworkorg/schema/beans http://wwwspringframeworkorg/schema/beans/springbeansxsd>
   
    <bean id=display
        class=comduduliliDisplay>
    </bean>
    <bean id=atuoRun
        class=comduduliliAutoRan>
        <property name=display ref=display></property>
    </bean>
   
    <bean id=aR
    class=orgspringframeworkschedulingtimerScheduledTimerTask>
        <property name=timerTask ref=atuoRun></property>
<!
period多長時間運行一次delay表示允許你當任務第一次運行前應該等待多久
>
        <property name=period value=></property>
        <property name=delay value=></property>   
    </bean>
   
    <bean id=test
    class=orgspringframeworkschedulingtimerTimerFactoryBean>
        <property name=scheduledTimerTasks>
            <list>
<!
這裡使用list可以調度多個bean
>
                <ref bean=aR/>
            </list>
        </property>
    </bean>
</beans>

  再來就是客戶端調度了

package comdudulili;

import orgspringframeworkbeansfactoryBeanFactory;
import orgspringframeworkcontextsupportClassPathXmlApplicationContext;

public class Client {

    public static void main(String[] args) {
        BeanFactory factory = new ClassPathXmlApplicationContext(applicationContextxml);
        factorygetBean(test);
    }
}


From:http://tw.wingwit.com/Article/program/Java/ky/201311/29199.html
    推薦文章
    Copyright © 2005-2022 電腦知識網 Computer Knowledge   All rights reserved.