首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

Quartz - Spring 调整

2012-12-26 
Quartz - Spring 整合Spring对Quartz的整合也从侧面反映出Quartz功能的强大。?1. Spring.Quartz结构介绍???

Quartz - Spring 整合

Spring对Quartz的整合也从侧面反映出Quartz功能的强大。

?

1. Spring.Quartz结构介绍

?

Quartz - Spring 调整
?
?

错误: Trigger为Abstract Class而非interface?

?

JobDetailBean和QuartzJobBean:

扩展自Quartz的JobDetail和Job,JobDetailBean使用bean name作为job name,并且不指定group name默认为"DEFAULT"

优点:JobDetailBean可通过Map jobDataAsMap对QuartzJobBean的属性进行注入,注入方法:将jobDataAsMap中key的value注入给QuartzJobBean的key属性。

?

MethodInvokingJobDetailFactoryBean:

可将任意的一个Java Bean成为一个可调度的Job。

通过属性targetObject(Java Bean实例)和属性targetMethod(任务实现方法的方法名)实现。

?

SimpleTriggerBean和CronTriggerBean:

通过Spring bean与JobDetailBean进行关联,并使用JobDetailBean的bean name作为name,JobDetailBean的group name作为group name。

并且SimpleTriggerBean的startTime默认为当前时间,repeatCount为无限制。

?

SchedulerFactoryBean:

用以替代Quartz中的Scheduler,通过向triggers属性注入trigger list对任务进行调度。

?

2.实例:

?

配置文件applicationContext.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"
?xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd">
?
?<!-- Spring quartz -->
?<bean name="jobDetail" value="com.siyuan.spring.quartz.JobImpl" />
??<property name="jobDataAsMap">
???<map>
????<entry key="name" value="jobImplTest"/>
???</map>
??</property>
?</bean>
?
?<bean name="trigger" ref="jobDetail" />
??<property name="startDelay" value="10000" />
??<property name="repeatCount" value="3" />
??<property name="repeatInterval" value="10000" />
?</bean>
?
?<bean name="reflectJob" ref="reflectJob" />
??<property name="targetMethod" value="doJob" />
?</bean>
?
?<bean name="cronTrigger" ref="reflectJobDetail" />
??<property name="cronExpression" value="0/10 * * * * ?" />
?</bean>
?
?<bean name="schduler" + new Date());
??System.out.println("Current name: " + name);
?}

}

2)ReflectJob.java

package com.siyuan.spring.quartz;

import java.util.Date;

public class ReflectJob {
?
?public void doJob(){
??System.out.println("In reflectJob current time : " + new Date());
?}
?
}

3)SpringQuartzTest.java

/**
?* SpringQuartzTest.java
?* Create by Administrator at 9:23:31 PM
?*/
package com.siyuan.spring.quartz;

import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
/**
?* @author Administrator
?* @Description
?*/
public class SpringQuartzTest {

?/**
? * @param args
? */
?public static void main(String[] args) {
??ApplicationContext ctxt = new ClassPathXmlApplicationContext("applicationContext.xml");
?}

}

3.参考资料

?

Spring开发者指南,可从本人的SSH中下载。
?

热点排行