`
alfred.w
  • 浏览: 91935 次
  • 性别: 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中使用Timer --实现由时间触发的事件任务.doc

    2. **使用MethodInvokingTimerTaskFactoryBean创建任务** Spring提供的`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实现定时器

    其中,Spring框架提供了多种实现定时任务的方法,包括但不限于使用`ScheduledAnnotationBeanPostProcessor`来处理带有`@Scheduled`注解的方法,以及通过`Timer`类和相关的配置来创建定时任务。本文将重点探讨如何...

    spring的定时器设置

    Spring框架是Java开发中广泛使用的轻量级框架,它的强大功能之一就是提供了定时任务支持,这在企业级应用中非常常见,例如数据同步、报表生成等场景。在本主题"spring的定时器设置"中,我们将深入探讨Spring如何配置...

Global site tag (gtag.js) - Google Analytics