有个项目,用的是Quartz1.6与Spring 2.56,因为使用了Quartz功能,发现Quartz升级到了2.x版本,习惯上简单的替换了一下jar包后发现报了一些配置上的错误。由于Quartz 2.x修改了部分API,所以需要修改Quartz的配置。
以下是spring3.2+quartz2.1.6配置实际运行成功的实例,具体步骤如下:
步骤一、升级Spring的jar包
这里用的是spring 3.2.0,以下是maven的pom.xml的配置信息:
org.springframework
spring-aop
3.2.0.RELEASE
org.springframework
spring-aspects
3.2.0.RELEASE
org.springframework
spring-beans
3.2.0.RELEASE
org.springframework
spring-context
3.2.0.RELEASE
org.springframework
spring-context-support
3.2.0.RELEASE
org.springframework
spring-core
3.2.0.RELEASE
org.springframework
spring-expression
3.2.0.RELEASE
org.springframework
spring-instrument
3.2.0.RELEASE
org.springframework
spring-instrument-tomcat
3.2.0.RELEASE
org.springframework
spring-jdbc
3.2.0.RELEASE
org.springframework
spring-jms
3.2.0.RELEASE
org.springframework
spring-orm
3.2.0.RELEASE
org.springframework
spring-oxm
3.2.0.RELEASE
org.springframework
spring-tx
3.2.0.RELEASE
org.springframework
spring-web
3.2.0.RELEASE
org.springframework
spring-webmvc
3.2.0.RELEASE
org.springframework
spring-webmvc-portlet
3.2.0.RELEASE
步骤二、升级Quartz的jar包到Quartz 2,maven配置文件如下:
org.quartz-scheduler
quartz
2.1.6
步骤三、修改spring的applicationContext.xml配置文件
将CronTriggerBean修改为CronTriggerFactoryBean
将JobDetailBean修改为JobDetailFactoryBean
以下是配置实例,具体如下:
class="com.example.service.SendMailLogic"/>
class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
service
false
class="org.springframework.scheduling.quartz.CronTriggerFactoryBean">
0/20 * * ? * *
class="org.springframework.scheduling.quartz.SchedulerFactoryBean">