`
alfred.w
  • 浏览: 90106 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

MethodInvokingTimerTaskFactoryBean 的使用

    博客分类:
  • java
阅读更多

集成TimerTask 容易造成对业务代码的侵入,这种方式更符合spring的思想。

 

 

http://caterpillar.onlyfun.net/GossipCN/SpringGossip/MethodInvokingTimerTaskFactoryBean.html

使 用Spring 时,您并不一定要继承TimerTask 来定义一个任务,Spring 提供 org.springframework.scheduling.timer.MethodInvokingTimerTaskFactoryBean , 可以让您直接指定呼叫某个物件的方法,例如可以改写一下 使用 TimerTask 中的DemoTask 类别,这次不用继承TimerTask 类别:

  • DemoTask.java
package onlyfun.caterpillar;

public class DemoTask {
    public void execute() {
        System.out.println("Task is executed.");
    }
}
 

 


接着只要在Bean 定义档中使用MethodInvokingTimerTaskFactoryBean 即可,例如:

  • beans-config.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING/DTD BEAN/EN"
  "http://www.springframework.org/dtd/spring-beans.dtd">

<beans>
    <bean id="demoTask"
           class="onlyfun.caterpillar.DemoTask"/>

    <bean id="timerTaskBean"
          class="org.springframework.scheduling.timer.MethodInvokingTimerTaskFactoryBean">
        <property name="targetObject">
            <ref bean="demoTask"/>
        </property>
        <property name="targetMethod">
            <value>execute</value>
        </property>      
    </bean>
       
    <bean id="scheduledTimerTask"
          class="org.springframework.scheduling.timer.ScheduledTimerTask">
        <property name="timerTask">
            <ref bean="timerTaskBean"/>
        </property>
        <property name="period">
            <value>5000</value>
        </property>
         <property name="delay">
            <value>1000</value>
        </property>       
    </bean>
   
    <bean id="timerFactoryBean"
          class="org.springframework.scheduling.timer.TimerFactoryBean">
        <property name="scheduledTimerTasks">
            <list>
                <ref bean="scheduledTimerTask"/>
            </list>
        </property>
    </bean>
</beans>
 

 


执行时可以直接使用 使用 TimerTask 中的TimerTaskDemo 类别,在底层,MethodInvokingTimerTaskFactoryBean 会自动建立TimerTask 的实例以呼叫目标物件上的指定方法。

分享到:
评论

相关推荐

    Spring中文帮助文档

    12.5.2. 使用 SqlMapClientTemplate 和 SqlMapClientDaoSupport 12.5.3. 基于原生的iBATIS API的DAO实现 12.6. JPA 12.6.1. 在Spring环境中建立JPA 12.6.2. JpaTemplate 和 JpaDaoSupport 12.6.3. 基于原生的...

    Spring API

    1.1.1. 使用场景 2. Spring 2.0和 2.5的新特性 2.1. 简介 2.2. 控制反转(IoC)容器 2.2.1. 新的bean作用域 2.2.2. 更简单的XML配置 2.2.3. 可扩展的XML编写 2.2.4. Annotation(注解)驱动配置 2.2.5. 在...

    Spring 2.0 开发参考手册

    1.2. 使用场景 2. Spring 2.0 的新特性 2.1. 简介 2.2. 控制反转(IoC)容器 2.2.1. 更简单的XML配置 2.2.2. 新的bean作用域 2.2.3. 可扩展的XML编写 2.3. 面向切面编程(AOP) 2.3.1. 更加简单的AOP XML配置 ...

    spring chm文档

    Spring Framework 开发参考手册 Rod Johnson Juergen Hoeller Alef Arendsen Colin Sampaleanu Rob Harrop Thomas Risberg Darren Davison Dmitriy Kopylenko Mark Pollack ...19.2. 使用Spring JMS ...

    Spring-Reference_zh_CN(Spring中文参考手册)

    1.2. 使用场景 2. Spring 2.0 的新特性 2.1. 简介 2.2. 控制反转(IoC)容器 2.2.1. 更简单的XML配置 2.2.2. 新的bean作用域 2.2.3. 可扩展的XML编写 2.3. 面向切面编程(AOP) 2.3.1. 更加简单的AOP XML配置 2.3.2. 对@...

    开源框架 Spring Gossip

    认识 Spring 来认识 Spring 的一些特性,并初步了解一下什么叫作 IoC... 使用 TimerTask 使用 MethodInvokingTimerTaskFactoryBean 使用 Quartz 使用 MethodInvokingJobDetailFactoryBean

    SPRING API 2.0.CHM

    MethodInvokingTimerTaskFactoryBean MethodLocatingFactoryBean MethodMapTransactionAttributeSource MethodMatcher MethodMatchers MethodNameBasedMBeanInfoAssembler MethodNameResolver MethodOverride...

Global site tag (gtag.js) - Google Analytics