首先需入导入quqrtz-all的Jar包;
配置Application.xml 或者 spring-mvc.xml文件,添加以下内容:
<!-- 以下内容是定时器的内容 -->
<!-- 要调用的工作类 -->
<bean id="quartzJob" class="cn.shuozhang.thread.InsertNewsThread"></bean>
<!-- 定义调用对象和调用对象的方法 -->
<bean id="jobtask"
class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
<!-- 调用的类 -->
<property name="targetObject">
<ref bean="quartzJob" />
</property>
<!-- 调用类中的方法 -->
<property name="targetMethod">
<value>insertData</value>
</property>
</bean>
<!-- 定义触发时间 -->
<!-- org.springframework.scheduling.quartz.CronTriggerBean -->
<bean id="doTime" class="org.springframework.scheduling.quartz.CronTriggerFactoryBean">
<property name="jobDetail">
<ref bean="jobtask" />
</property>
<!-- cron表达式 -->
<property name="cronExpression">
<!-- 第 10秒 隔 5秒执行一次 -->
<value>0 1/10 * * * ?</value>
</property>
</bean>
<!-- 总管理类 如果将lazy-init='false'那么容器启动就会执行调度程序,在这里可以添加多个任务列表 -->
<bean id="startQuertz" lazy-init="false" autowire="no"
class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
<property name="triggers">
<list>
<ref bean="doTime" />
</list>
</property>
</bean>
在说明下Cron表达式的用法:
其表达式包含七个字段,分别为[秒][分][时][日][月][周][年]
每个字段可以使用以下字符连接:
* 表示所有
?相当于一个占位符
-表示一个范围
,表示一个列表
/ 表示起始与步长,循环调用
如:0 0 12 1/5 * ? 每月的第一个中午开始每隔5天触发一次。