昨天刚好看到项目用到了QuertZ这个
所以就研究了下
首先引入jar
<!-- quartz -->
<dependency>
<groupId>org.quartz-scheduler</groupId>
<artifactId>quartz</artifactId>
<version>2.2.2</version>
</dependency>
<dependency>
<groupId>org.quartz-scheduler</groupId>
<artifactId>quartz-jobs</artifactId>
<version>2.2.2</version>
</dependency>
然后在配置xml文件
<!-- 总管理类 如果将lazy-init='false'那么容器启动就会执行调度程序 -->
<bean id="startQuertz" lazy-init="true" autowire="no" class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
<property name="triggers">
<list>
<ref bean="doTime" />
</list>
</property>
<!-- 可以在代码中拿到 SchedulerFactoryBean 无需依赖注入-->
<property name="exposeSchedulerInRepository" value="true" />
</bean>
<!-- 定义触发时间 -->
<bean id="doTime" class="org.springframework.scheduling.quartz.CronTriggerFactoryBean">
<property name="jobDetail">
<ref bean="jobtask" />
</property>
<property name="cronExpression">
<!-- cron表达式:在每天早上8点到晚上8点期间每1分钟触发一次 -->
<!-- <value>0 0/1 8-20 * * ?</value> -->
<!-- cron表达式:每5分钟触发一次 -->
<!-- <value>0 0/1 * * * ?</value> -->
<value>${quartz.cron}</value>
<!-- <value>0/10 * * * * ?</value> -->
</property>
</bean>
<!-- 定义调用对象和调用对象的方法 -->
<bean id="jobtask" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
<!-- 调用的类 -->
<property name="targetObject" ref="quartzJob" />
<!-- 调用类中的方法名称 -->
<property name="targetMethod">
<value>execute</value>
</property>
</bean>
<!-- 要调用的工作类 -->
<bean id="quartzJob" class="zw.singleton.jeeframework.common.utils.tasktimer.QuartzDome"></bean>
这里用的是spring4.X和Quertz2.2.2 使用Quertz1.x 会提示找不到类 所以需要注意版本问题