Spring定时器配置及使用

spring中集成了定时器功能,使用到了类:org.springframework.scheduling.quartz.SchedulerFactoryBean,org.springframework.scheduling.quartz.CronTriggerBean,

org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean,以及你自己需要实现的执行任务的类。

第一个类【org.springframework.scheduling.quartz.SchedulerFactoryBean】:


正像其名称指出的一样,它是调度工厂Bean,在该工厂中,放置所有需要调度的【CronTriggerBean】的对象。

该类一般只使用一个参数:triggers,该参数可配置成为list,也可只注入单一trigger。

比如:

<bean class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
	<property name="triggers">
		<ref local="numCountSchedule"/>
	</property>
</bean>


第二个类【org.springframework.scheduling.quartz.CronTriggerBean】:

该类包含了两部分:1、“执行类”的细节。2、“执行类”的时间安排。

1、执行类的细节被封装在【MethodInvokingJobDetailFactoryBean】中,因此,该类第一个参数jobDetail即为一个MethodInvokingJobDetailFactoryBean对象。

2、执行类的时间安排使用了cronExpression表达式。

比如:

<bean id="numCountSchedule" class="org.springframework.scheduling.quartz.CronTriggerBean">
	<property name="jobDetail">
		<ref bean="numCountDetail"/>
	</property>
	<property name="cronExpression">
		<value>0/2 * 15 * * ? 2014</value>
	</property>
</bean>


第三个类【org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean】:

该类包含了跟“执行类”相关的两部分:1、targetObject 2、targetMethod。

1、targetObject 即为一个“执行类”对象。本例中执行对象即为第四个类中xml配置的<bean>id。

2、targetMethod则是该执行对象的执行方法。

比如:

<bean id="numCountDetail" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
	<property name="targetObject">
		<ref bean="numCount"/>
	</property>
	<property name="targetMethod">
		<value>count</value>
	</property>
</bean>


第四个类即为自己写的执行类,执行具体的工作。

XML:

<bean id="numCount" class="com.hunter.HunterCount">
	<!-- <property name="initNum">
		<value>2</value>
	</property> -->
</bean>


对应代码:

package com.hunter;

import java.io.File;

import org.springframework.context.support.ClassPathXmlApplicationContext;


public class HunterCount {

	/**
	 * @param args
	 */
		
	public void count(){
		System.out.println("count:"+3);
	}
	
	public static void main(String[] args){
		
		new ClassPathXmlApplicationContext("./applicationContext-crawl.xml"); 
		
	}
}

主函数可以不要。为了方便单机测试,使用了spring的xml加载方式。


本篇的所有例子组合起来即为一个成功的调度。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值