Spring+Quartz定时任务示例2

这个定时任务不继承org.springframework.scheduling.quartz.QuartzJobBean类,而是使用org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean类来完成。

这里使用的quartz包和spring包与《Spring+Quartz定时任务示例1》中的一样。

1.写一个定时任务工作类

 

/**
 * @ClassName Demo2
 * @Description 定时任务工作类
 * 
 * @author laosan
 * @date 2014-12-12 上午10:22:58
 */
public class Demo2
{
    public void runTask(){
        System.out.println("定时任务开始执行……");
        
        System.out.println("定时任务执行完成!");
    }

}


2.配置Spring文件

 

 

<?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.2.xsd 
       http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.2.xsd 
       http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.2.xsd">

	<!-- 配置定时任务的调度工厂,Spring的autowire属性值为no表示即不启用自动装配 -->
	<bean name="quartzScheduler"
		class="org.springframework.scheduling.quartz.SchedulerFactoryBean"
		autowire="no">

		<!-- 将触发器设置到参数中 -->
		<property name="triggers">
			<list>
				<ref bean="demo2" />
			</list>
		</property>
	</bean>

	<!-- 配置定时任务的执行 -->
	<bean id="jobDetail_demo2"
		class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">

		<!-- 自己定义的定时任务工作类 -->
		<property name="targetObject">
			<bean class="com.zlc.task.demo2.Demo2"></bean>
		</property>

		<!-- 指定定时任务执行的方法 -->
		<property name="targetMethod" value="runTask" />

		<!-- 是否可以并发执行,false表示不并发 -->
		<property name="concurrent" value="false" />
	</bean>

	<!-- 配置定时任务的执行方式(触发器), CronTriggerBean表示指定某一个时间执行, 也可以按照某一个频率执行定时任务 -->
	<bean id="demo2" class="org.springframework.scheduling.quartz.CronTriggerBean">
		<property name="jobDetail" ref="jobDetail_demo2" />

		<!--cronExpression表达式,配置定时任务执行的时间或频率 -->
		<property name="cronExpression" value="0 55 10 * * ?" />

		<!-- 定时任务的说明 -->
		<property name="description" value="定时任务示例2" />
	</bean>

</beans>


3.写一个测试类,加载Spring配置文件中的配置

 

 

import org.springframework.context.ApplicationContext;
import org.springframework.context.support.FileSystemXmlApplicationContext;

/**
 * @ClassName Test
 * @Description 测试类
 * 
 * @author laosan
 * @date 2014-12-12 上午10:26:19
 */
public class Test
{
    @SuppressWarnings("unused")
    public static void main(String[] args)
    {
        ApplicationContext atx = new FileSystemXmlApplicationContext("applicationContext-task.xml");
    }
}



 

你可能感兴趣的:(quartz,定时任务)