quartz与Spring整合
在Spring中提供了与quartz整合的方法
这里用了三个类
org.springframework.scheduling.quartz.SchedulerFactoryBean
org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean
org.springframework.scheduling.quartz.CronTriggerBean
这是quartz通过这三个类可以将执行的时间以及方法配置到spring中的容器中。再通过web.xml读取这个配置文件就能走定时任务了。
例子:
这是web.xml中的配置。读取我的spring 整合后的配置文件
<!-- tomcat默认生成的地方是classes下面 -->
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath*:applicationContext*.xml</param-value>
</context-param>
这里是配置定时任务的具体方式
<bean autowire="no" class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
<property name="triggers">
<list>
<ref bean="autoSignQuitTriggerBeanZX"/>
</list>
</property>
</bean>
<bean id="autoSignQuitTriggerZX" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
<property name="targetObject">
<ref bean="autoSignQuitServiceZX"></ref>
</property>
<property name="targetMethod">
<value>autoSignQuit</value>
</property>
</bean>
<bean id="autoSignQuitTriggerBeanZX" class="org.springframework.scheduling.quartz.CronTriggerBean">
<property name="jobDetail">
<ref bean="autoSignQuitTriggerZX"/>
</property>
<property name="cronExpression">
<value>0 0 21 * * ?</value>
</property>
</bean>
<bean id="autoSignQuitServiceZX" class="com.broadtext.wms.wmsSign.service.AutoSignQuitServiceZX"
autoSignQuitServiceZX这是自定义类名
配置好后自定义一个AutoSignQuitServiceZX类就行了
定时任务配好后,每次21:00就会走定时任务。(执行以下AutoSignQuitServiceZX类中的autoSignQuit方法)。