一、首先加入依赖JAR包
<dependency> <groupId>org.springframework</groupId> <artifactId>spring-webmvc</artifactId> <version>3.0.5.RELEASE</version> </dependency> <dependency> <groupId>org.quartz-scheduler</groupId> <artifactId>quartz</artifactId> <version>1.8.4</version> </dependency>
二、创建实现类
package com.chongdong.job; import org.springframework.stereotype.Component; @Component("workJob") public class WorkJob { public void working() { System.out.println("start working!"); } }
三、在applicationContext.xml的配置
<!-- 异步线程池 --> <bean id="taskExecutor" class="org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor"> <!-- 核心线程数 --> <property name="corePoolSize" value="10" /> <!-- 最大线程数 --> <property name="maxPoolSize" value="50" /> <!-- 队列最大长度 >=mainExecutor.maxSize --> <property name="queueCapacity" value="1000" /> <!-- 线程池维护线程所允许的空闲时间 --> <property name="keepAliveSeconds" value="300" /> <!-- 线程池对拒绝任务(无线程可用)的处理策略 --> <property name="rejectedExecutionHandler"> <bean class="java.util.concurrent.ThreadPoolExecutor$CallerRunsPolicy" /> </property> </bean> <!-- 调度业务 --> <bean id="workJobDetail" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean"> <property name="targetObject"> <ref bean="workJob" /> </property> <property name="targetMethod"> <value>working</value> </property> </bean> <bean id="workJobTrigger" class="org.springframework.scheduling.quartz.CronTriggerFactoryBean"> <property name="jobDetail"> <ref bean="workJobDetail" /> </property> <property name="cronExpression"> <value>${job.workJob}</value> </property> </bean> <bean class="org.springframework.scheduling.quartz.SchedulerFactoryBean"> <property name="triggers"> <list> <ref bean="workJobTrigger" /> </list> </property> <property name="taskExecutor" ref="taskExecutor" /> </bean>
这里的${job.workJob}为配置文件中的参数,值为Cron表达式:
0/5 * * * * ?-----每5秒执行一次