集成TimerTask 容易造成对业务代码的侵入,这种方式更符合spring的思想。
http://caterpillar.onlyfun.net/GossipCN/SpringGossip/MethodInvokingTimerTaskFactoryBean.html
使 用Spring
时,您并不一定要继承TimerTask
来定义一个任务,Spring
提供
org.springframework.scheduling.timer.MethodInvokingTimerTaskFactoryBean
,
可以让您直接指定呼叫某个物件的方法,例如可以改写一下
使用
TimerTask
中的DemoTask
类别,这次不用继承TimerTask
类别:
package onlyfun.caterpillar;
public class DemoTask {
public void execute() {
System.out.println("Task is executed.");
}
}
接着只要在Bean
定义档中使用MethodInvokingTimerTaskFactoryBean
即可,例如:
<?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
的实例以呼叫目标物件上的指定方法。
分享到:
相关推荐
2. **使用MethodInvokingTimerTaskFactoryBean创建任务** Spring提供的`MethodInvokingTimerTaskFactoryBean`允许你直接调用一个对象的方法作为定时任务,而无需让目标类继承`TimerTask`。这提供了更大的灵活性。...
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. 基于原生的...
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. 在...
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 Framework 开发参考手册 Rod Johnson Juergen Hoeller Alef Arendsen Colin Sampaleanu Rob Harrop Thomas Risberg Darren Davison Dmitriy Kopylenko Mark Pollack ...19.2. 使用Spring JMS ...
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 来认识 Spring 的一些特性,并初步了解一下什么叫作 IoC... 使用 TimerTask 使用 MethodInvokingTimerTaskFactoryBean 使用 Quartz 使用 MethodInvokingJobDetailFactoryBean
其中,Spring框架提供了多种实现定时任务的方法,包括但不限于使用`ScheduledAnnotationBeanPostProcessor`来处理带有`@Scheduled`注解的方法,以及通过`Timer`类和相关的配置来创建定时任务。本文将重点探讨如何...
Spring框架是Java开发中广泛使用的轻量级框架,它的强大功能之一就是提供了定时任务支持,这在企业级应用中非常常见,例如数据同步、报表生成等场景。在本主题"spring的定时器设置"中,我们将深入探讨Spring如何配置...
MethodInvokingTimerTaskFactoryBean MethodLocatingFactoryBean MethodMapTransactionAttributeSource MethodMatcher MethodMatchers MethodNameBasedMBeanInfoAssembler MethodNameResolver MethodOverride...