1、jar
- spring基础包(spring-context-support.jar/spring-tx.jar)+quartz
2、整个配置信息
a.将Job信息封装到一个 实体类中 //spring 约定
public class ScheduleJob {
//id
private String jobId;
private String jobName;//名
private String jobGroup;//组
// 前面必须写
private String jobStatus; //状态 0 禁用 1 启用 2 删除
private String cronExpression;//Cron表达式
private String desc;//描述
}
其他相关的类
public class PlanJob implements Job {
private JobService jobService = new JobService();
@Override
public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException {
TriggerKey key = jobExecutionContext.getTrigger().getKey();
JobKey key1 = jobExecutionContext.getJobDetail().getKey();
System.out.println(key +":"+key1);
jobService.callWorking();
}
}
public class JobService {
public void callWorking(){
System.out.println("该工作了。。。。。");
}
}
b.spring配置文件
application.xml
<bean id="job" class="org.springAndQuartz.entity.ScheduleJob">
<property name="jobId" value="job001"/>
<property name="jobName" value="任务一"/>
<property name="jobGroup" value="任务组-"/>
<property name="jobStatus" value="1"/>
<property name="cronExpression" value="5,10,20 * * * * ? *"/>
<property name="desc" value="描述。。。。"/>
</bean>
<bean id="jobDetail" class="org.springframework.scheduling.quartz.JobDetailFactoryBean">
<property name="jobClass" value="org.springAndQuartz.job.PlanJob" >
</property>
<property name="jobDataAsMap">
<map>
<entry key="scheduleJob">
<ref bean="job"></ref>
</entry>
</map>
</property>
</bean>
<!--触发器-->
<bean id="cronTrigger" class="org.springframework.scheduling.quartz.CronTriggerFactoryBean">
<property name="cronExpression" value="#{job.cronExpression}"/>
<property name="jobDetail" ref="jobDetail"/>
<property name="name" value="#{job.jobName}"/>
<property name="group" value="#{job.jobGroup}"/>
</bean>
<bean id="simpleTrigger" class="org.springframework.scheduling.quartz.SimpleTriggerFactoryBean">
<property name="repeatInterval" value="1000"/>
<property name="jobDetail" ref="jobDetail"/>
<property name="repeatCount" value="10"/>
<property name="name" value="#{job.jobName}"/>
<property name="group" value="#{job.jobGroup}"/>
</bean>
<!--调度器-->
<bean id="stdScheduler" class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
<property name="triggers">
<list>
<ref bean="simpleTrigger"></ref>
</list>
</property>
</bean>
test
public class Test {
public static void main(String[] args) {
ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");
//可以自动执行
//原因 : springIOC容器 自动初始化 默认 autoStartup
}
}

本文介绍如何使用Spring框架整合Quartz实现定时任务的配置与执行。通过定义实体类ScheduleJob来封装Job信息,利用PlanJob类实现Job接口执行具体任务,并通过JobService进行业务调用。spring配置文件中详细展示了如何配置JobDetail、CronTrigger和SimpleTrigger,以及Scheduler的初始化过程。

被折叠的 条评论
为什么被折叠?



