Spring中使用Quartz的2种方法【转】
开发环境:Spring2.0。如果包类没有Quartz包,则需要加入到类路径。
A:extends QuartzJobBean方法
1:定义任务(extends QuartzJobBean)
package onlyfun.bb.Quartz;
import org.quartz.JobExecutionContext;
import org.springframework.scheduling.quartz.QuartzJobBean;
public class QuartzDemo extends QuartzJobBean {
??? private JobData jobData; //JobData为自定义类
??? public void executeInternal(JobExecutionContext context){
?????? System.out.println(jobData.getData()+" is executed");
??? }
??? public JobData getJobData() {
?????? return jobData;
??? }
??? public void setJobData(JobData jobData) {
?????? this.jobData = jobData;
??? }
}
JobData.java:
package onlyfun.bb.Quartz;
import java.util.Date;
public class JobData {
??? public String getData(){
?????? return "Data from JobData at "+new Date().toString();
??? }
}
?
2: 配置
<!-- use Quartz -->
<bean id="someData" value="onlyfun.bb.Quartz.QuartzDemo"></property>
??? <property name="jobDataAsMap">
????? <map>
??????? <entry key="jobData" value-ref="someData"></entry>
????? </map>
??? </property>
</bean>
<bean id="simpleTriggerBean" ref="jobDetailBean"></property>
??? <property name="repeatInterval" value="2000"></property>
??? <property name="startDelay" value="1000"></property>
</bean>
<bean id="scheduledFactoryBean" value="onlyfun.bb.Quartz.QuartzDemo"></property>
??? <property name="jobDataAsMap">
????? <map>
??????? <entry key="jobData" value-ref="someData"></entry>
????? </map>
??? </property>
</bean>
<bean id="cronTriggerBean" ref="jobDetailBean"></property>
??? <property name="cronExpression" value="0 37-38 15 * * ?"/>
</bean>
<bean id="scheduledFactoryBean" ref="someData"></property>
</bean>
<bean id="jobDetailBean" ref="someJob"></property>
??? <property name="targetMethod" value="execute"></property>
</bean>
<bean id="cronTriggerBean" ref="jobDetailBean"></property>
??? <property name="cronExpression" value="0 6 16 * * ?"/>
</bean>
<bean id="scheduledFactoryBean" class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
?? <property name="triggers">
???? <list>
?????? <ref bean="cronTriggerBean"/>
???? </list>
?? </property>
</bean>
此处配置主要修改了粗体部分。对作为1个Job的类进行了定义。而方法A不需要定义。
?
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/yefriendly/archive/2008/05/28/2490789.aspx