spirng 支持的三种定时器学习笔记

以下是三个定时器的类
package com.spring.test;

import java.util.TimerTask;

public class ExamplesTimer extends TimerTask{
	@Override
	public void run() {
		System.out.println("run......");
	}
}


package com.spring.test;

import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;
import org.springframework.scheduling.quartz.QuartzJobBean;

public class ExamplesJob extends QuartzJobBean {
	private int timeout ;
	
	public void setTimeout(int timeout) {
		this.timeout = timeout;
	}

	@Override
	protected void executeInternal(JobExecutionContext arg0)
			throws JobExecutionException {
			System.out.println("ExamplesJob.....");
	}
}


package com.spring.test;

public class ExampleBusinessObjec {
	 public void doIt() {
		    System.out.println("ExampleBusinessObjec...");
		  }
}



以下是 application.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"
	xmlns:aop="http://www.springframework.org/schema/aop"
	xmlns:tx="http://www.springframework.org/schema/tx"
	xsi:schemaLocation="http://www.springframework.org/schema/beans 
		http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
		http://www.springframework.org/schema/tx 
        http://www.springframework.org/schema/tx/spring-tx-3.0.xsd
        http://www.springframework.org/schema/aop 
        http://www.springframework.org/schema/aop/spring-aop-3.0.xsd ">
	 <!-- 
	    第一种  JDK Timer 
		<bean id="examplesTimer" class="com.spring.test.ExamplesTimer" />
		
		<bean id="scheduledTask"
		class="org.springframework.scheduling.timer.ScheduledTimerTask">
		<property name="delay" value="5000" />
		<property name="period" value="1000" />
		<property name="timerTask" ref="examplesTimer" />
		</bean>
		
		<bean id="timerFactory"
		class="org.springframework.scheduling.timer.TimerFactoryBean">
		<property name="scheduledTimerTasks">
		<list>
		<ref bean="scheduledTask" />
		</list>
		</property>
		</bean>
  -->
   <!-- 以下是第2、3 种订时器的配置   -->
	<bean name="exampleJob" class="org.springframework.scheduling.quartz.JobDetailBean">
		<property name="jobClass" value="com.spring.test.ExamplesJob" />
		<property name="jobDataAsMap">
			<map>
				<entry key="timeout" value="5" />
			</map>
		</property>
	</bean>
	<bean id="exampleBusinessObject" class="com.spring.test.ExampleBusinessObjec" />
	
	<bean id="jobDetail"
		class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
		<property name="targetObject" ref="exampleBusinessObject" />
		<property name="targetMethod" value="doIt" />
		<property name="concurrent" value="false" />
	</bean>
	
	<bean id="simpleTrigger"
		class="org.springframework.scheduling.quartz.SimpleTriggerBean">
		<property name="jobDetail" ref="jobDetail" />
		<property name="startDelay" value="5000" />
		<property name="repeatInterval" value="1000" />
	</bean>

	<bean id="cronTrigger"
		class="org.springframework.scheduling.quartz.CronTriggerBean">
		<property name="jobDetail" ref="exampleJob" />
		<!-- run every morning at 6 AM -->
		<property name="cronExpression" value="0 0 6 * * ?" />
	</bean>
	<bean
		class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
		<property name="triggers">
			<list>
				<ref bean="cronTrigger" />
				<ref bean="simpleTrigger" />
			</list>
		</property>
	</bean>

</beans>


官方资料:http://ajava.org/online/spring2.5/html/scheduling.html

猜你喜欢

转载自ait.iteye.com/blog/1132974
今日推荐