踩过的坑
遇到CronTriggerFactoryBean class notfound
原因是使用3.1以下的版本,我使用的是3.06发现spring-context-support jar文件下面,压根没有这个类,改成org.springframework.scheduling.quartz.CronTriggerBean可以。
遇到JobDetail class notfound
原因是使用2.0以上版本,因为这些版本中,JobDetail 是interface,具体原因的话,可能作者觉得,类的抽象没有接口抽象好
以下提供一下,自己使用的配置
maven pom.xml
<!-- 属性 --> <properties> <spring-version>3.0.6.RELEASE</spring-version> </properties> <dependencies> <!-- Spring 3 dependencies --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-core</artifactId> <version>${spring-version}</version> </dependency> <!-- QuartzJobBean in spring-context-support.jar --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context-support</artifactId> <version>${spring-version}</version> </dependency> <!-- Spring + Quartz need transaction --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-tx</artifactId> <version>${spring-version}</version> </dependency> <!-- Quartz framework --> <dependency> <groupId>org.quartz-scheduler</groupId> <artifactId>quartz</artifactId> <version>1.8.6</version> </dependency> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.8</version> <scope>test</scope> </dependency> </dependencies>
applicationContext.xml文件的配置
<bean id="testJob" class="org.alipay.mingdu.quartz.jobs.TestJob"></bean>
<bean id="testJobDetail"
class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
<!-- 指定任务类 -->
<property name="targetObject" ref="testJob" />
<!-- 指定任务执行的方法 -->
<property name="targetMethod" value="execute" />
</bean>
<bean id="testJobTrigger"
class="org.springframework.scheduling.quartz.CronTriggerBean">
<property name="jobDetail" ref="testJobDetail" />
<!-- 每10秒运行一次 -->
<property name="cronExpression" value="0/10 * * * * ?" />
</bean>
<bean class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
<property name="triggers">
<list>
<ref bean="testJobTrigger" />
</list>
</property>
</bean>
效果: