在SPRING中添加定时任务时,需要完成以下几个步骤
第一,添加quartz.jar的jar包,确认当前版本是否与SPRING的冲突,如SPRING3.0的话,对quarts.jar的话最好就选择小于2.0的版本
第二,到applicationContext.xml的文件中添加以下的配置,确认xml中不存在default-lazy-init="true"这个设置。
<bean class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
<property name="triggers">
<list>
<ref bean="testTrigger"/>
</list>
</property>
<property name="autoStartup" value="true"/>
</bean>
<bean id="testTrigger" class="org.springframework.scheduling.quartz.CronTriggerBean">
<property name="jobDetail" ref="testJobDetail"/>
<property name="cronExpression" value="0 */10 * * * ?"/><!-- 每隔1分钟触发一次 -->
</bean>
<bean id="testJobDetail" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
<property name="targetObject" ref="testJob"/>
<property name="targetMethod" value="execute"/>
<property name="concurrent" value="false"/>
</bean>
<bean id="testJob" class="com.hlct.framework.taskWork.GrhTJJob"/>
之后启动即可。
注意,在配置当中 Error setting property values; nested exception is org.springframework.beans.PropertyBatchUpdateException; nested PropertyAccessExceptions (1) are:
PropertyAccessException 1: org.springframework.beans.MethodInvocationException: Property ‘cronExpression‘ threw exception; nested exception is java.text.ParseException时,即表示cronExpression表达式有问题
如果java.lang.IncompatibleClassChangeError: class org.springframework.scheduling.quartz.CronTriggerBean has interface org.quartz.CronTrigger as super class这个错,则表示spring和quarts的版本不一致。
本文出自 “日常小记” 博客,谢绝转载!
原文:http://2062402.blog.51cto.com/2052402/1902390