接上边文章(SSM配置模板)增加任务调度配置

时间:2022-07-24 20:03:57

之前的SSM配置模板文章讲述了基本的ssm配置文件,本篇文章增加任务调度配置:

首先在pom.xml中添加quartz的依赖

<!-- quartz-scheduler -->
<dependency>
<groupId>org.quartz-scheduler</groupId>
<artifactId>quartz</artifactId>
<version>2.2.1</version>
</dependency>
然后开始spring整合quartz spring-scheduler.xml:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">
<!-- 启动触发器的配置开始 -->
<bean name="startQuertz" lazy-init="false" autowire="no"
class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
<property name="triggers">
<list>
<ref bean="myJobTrigger" />
</list>
</property>
<property name="quartzProperties">
<props>
<prop key="org.quartz.threadPool.threadCount">5</prop>
<prop key="org.quartz.threadPool.makeThreadsDaemons">true</prop>
</props>
</property>
</bean>
<!-- 启动触发器的配置结束 -->

<!-- 调度的配置开始 -->
<!-- quartz-1.8以前的配置 <bean id="myJobTrigger" class="org.springframework.scheduling.quartz.CronTriggerBean">
<property name="jobDetail"> <ref bean="myJobDetail" /> </property> <property
name="cronExpression"> <value>0/1 * * * * ?</value> </property> </bean> -->
<!-- quartz-2.x的配置 -->
<bean id="myJobTrigger"
class="org.springframework.scheduling.quartz.CronTriggerFactoryBean">
<property name="jobDetail">
<ref bean="myJobDetail" />
</property>
<property name="cronExpression">
<value>0/10 * * * * ?</value>
</property>
</bean>
<!-- 调度的配置结束 -->

<!-- job的配置开始 -->
<bean id="myJobDetail"
class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
<property name="targetObject">
<ref bean="schedulerTest" />
</property>
<property name="targetMethod">
<value>quartz</value>
</property>
</bean>
<!-- job的配置结束 -->

<!-- 工作的bean -->
<bean id="schedulerTest" class="com.yrok.quartzScheduler.SchedulerTest" />
</beans>

最后在web.xml中初始化:

<!-- spring 的配置文件 -->
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath*:applicationContext.xml,classpath*:spring-scheduler.xml</param-value>
</context-param>