spring quartz定时器的简单配置使用以及常见问题解答

Spring当中有几种定时器的方法,而quartz是使用比较广泛的一种方法,相较于自己在代码中用thread、timerTask和Timer等方法, quartz无疑更简单。第一次上手quartz时关于Spring的架构还不清楚,不过好在网上连接很多,自己也是摸索了好半天才配置好。现在把自己的完整配置过程给大家讲一下。

第一步首先就是到网上下载合适的quartz.jar包。我自己下载的是2.2.2版本的,网上还有说需要commons-collections.jar、commons-logging.jar、log4j以及spring.jar包,自己工程已经有了,也没下。

重点来了,需要自己到网上下载或者配置以下文件,包括org.springframework.spring-tx.4.2.4.release.jar包,以及org.springframework.spring-context-support.4.2.4.release.jar,版本依据自己的工程可以不同,这个我也是借鉴了 Defonds 的专栏 - CSDN博客 http://blog.csdn.net/defonds/article/details/49496895 里面所写。要在工程根目录的pom.xml中进行,如下图所示。

<dependencies>  
        <dependency>  
            <groupId>org.springframework</groupId>  
            <artifactId>spring-core</artifactId>  
            <version>${springframework.version}</version>  
        </dependency>  
        <dependency>  
            <groupId>org.springframework</groupId>  
            <artifactId>spring-context-support</artifactId>  
            <version>${springframework.version}</version>  
        </dependency>  
        <!-- Transaction dependency is required with Quartz integration -->  
        <dependency>  
            <groupId>org.springframework</groupId>  
            <artifactId>spring-tx</artifactId>  
            <version>${springframework.version}</version>  
        </dependency>  
           
        <!-- Quartz framework -->  
        <dependency>  
            <groupId>org.quartz-scheduler</groupId>  
            <artifactId>quartz</artifactId>  
            <version>${quartz.version}</version>  
        </dependency>  
    </dependencies>  
图中${springframework.version}如果按照我的版本来的话就填4.2.4.release。此外,如果这些jar包如果配置完后如果还报错,说明你的:\.m2\repository目录下没有这些Jar包,需要网上下载,给个下载地址链接:http://search.maven.org/#search%7Cga%7C1%7C

然后按照规范将这些jar包拷贝到上述本地目录下,具体怎么拷贝怎么命名自己可以再搜,网上很多。

	<bean id="recycleUtil" class="com.navinfo.had.validator.impl.RecycleUtil"  scope="prototype" >
	        <property name="dbhelp" ref ="dbHelper"  />
 	</bean>
    <bean id="QuartzJobDetail" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">  
        <property name="targetObject" ref ="recycleUtil" />  
        <property name="targetMethod" value="recycle" />  
    </bean>  
    <bean id="QuartzJobTrigger" class="org.springframework.scheduling.quartz.CronTriggerFactoryBean">  
        <property name="jobDetail">  
            <ref bean="QuartzJobDetail" />  
        </property>  
        <property name="cronExpression">  
            <value>0 0/1 * * * ?</value>  
        </property>  
    </bean>  
    <bean class="org.springframework.scheduling.quartz.SchedulerFactoryBean" autowire="no">  
        <property name="triggers">  
            <list>  
                <ref bean="QuartzJobTrigger" />  
            </list>  
        </property>  
    </bean>  
接下来就是调度的问题了,其实蕃薯耀 - ITeye博客 http://fanshuyao.iteye.com/blog/2309223以及Defonds 的专栏 - CSDN博客 http://blog.csdn.net/defonds/article/details/49496895 写的很详细,大家在写的时候可能会遇到很多参数不知道要不要改,改那个的问题,以我写的为例的话,其实大家主要关注的就是第一行中recycleUtil是要自己命名的,class也是自己工程中触发的类名称,这个是自己要调用的类的bean名,在代码第5行中要引用,第二行的代码可以忽略不计。第6行中的recycle即为

com.navinfo.had.validator.impl.RecycleUtil 
中的方法名,一定要完全对应好。剩下的参数大可按照我写的不用改动。需要注意的是这个方法要是无参的,如果需要传递的参数的话,可以按照如下进行更改

<bean id="QuartzJobDetail" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">  
        <property name="targetObject" ref ="recycleUtil" />  
        <property name="targetMethod" value="recycle" />  
 	<property name="arguments" value="D:/" />  
</bean>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值