当前位置: 首页 > 图文教程 > Java技术 > Web框架 > Spring与自动调度任务 基于Timer的任务调度器的应用

Web框架
struts2(三)
struts2(四)
struts2(五)
struts2(六)
Spring中注入概念的简单介绍
深入探讨struts的ActionMessages消息机制(转)
DWR 的 Converter 实现原理简单分析及应用
详解Spring中bean的作用域
AJAX实现级联下拉框
Spring AOP面向方面编程原理:AOP概念
Spring结合Hibernate声明式事务配置
Struts 概述
Ajax 入门简介
Struts配置文件详解
Struts in Spring
Struts 开发的最佳实践
Struts核心标签
开发框架:利用STRUTS实现国际化支持
Struts自定义标签的过程
Struts 框架的基本概念及实现MVC模式的原理

Web框架 中的 Spring与自动调度任务 基于Timer的任务调度器的应用


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-08-14   浏览: 299 ::
收藏到网摘: n/a

在想到建立索引的时候要用自动调度的方法。

    原因很简单,你的索引要更新的。所以想到了自动调度。当然那就想到了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");
    }
}