springmvc整合quartz做任务定时调度

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/fantasic_van/article/details/79081828

1、做好springmvc的相关配置

2、加入quartz的包

<!-- Quartz start -->
<dependency>
    <groupId>org.quartz-scheduler</groupId>
    <artifactId>quartz</artifactId>
    <version>2.2.1</version>
</dependency>
<dependency>
    <groupId>org.quartz-scheduler</groupId>
    <artifactId>quartz-jobs</artifactId>
    <version>2.2.1</version>
</dependency>
<!-- Quartz end -->

3、加入applicationContext-quartz.xml配置文件

<?xml version="1.0" encoding="UTF-8"?>
<beans
    default-lazy-init="true"
    xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="
        http://www.springframework.org/schema/beans     http://www.springframework.org/schema/beans/spring-beans-4.0.xsd
">
    <!-- 自定义一个类,用于存放调度任务-->
    <bean id="jobDetailBean" class="cn.tisson.mos.quartz.bean.QuartzJobDetail"/>

    <!-- Quartz调度工厂 -->
    <bean id="schedulerBean" class="org.springframework.scheduling.quartz.SchedulerFactoryBean" lazy-init="false">
        <!-- <property name="configLocation" value="classpath:quartz.properties"/> -->
        <property name="triggers">
            <list>
                <!-- 触发器的列表,可以放多个 -->
                <ref bean="testQuartzTrigger"/>
            </list>
        </property>
    </bean>


    <!-- 每2秒执行一次 -->
    <bean id="testQuartz" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
        <property name="targetObject">
            <ref bean="jobDetailBean"/>
        </property>
        <property name="targetMethod">
            <value>test</value>
        </property>
    </bean>
    <bean id="testQuartzTrigger" class="org.springframework.scheduling.quartz.CronTriggerFactoryBean">
        <property name="jobDetail" ref="testQuartz"/>
        <!-- 这里使用的是cron表达式,此处代表每两秒执行一次 -->
        <property name="cronExpression" value="0/2 * * * * ?"></property>
    </bean>

</beans>

4、在spring的配置文件applicationContext.xml中引入quartz的配置

<import resource="applicationContext-quartz.xml"/>

5、 自定义一个类,用于存放调度任务,也就是上面配置的那个jobDetailBean

package cn.tisson.mos.quartz.bean;

public class QuartzJobDetail {

    public void test(){
        System.out.println("====");
    }
}

6、启动程序,则会按照cron表达式的设定,自动执行任务调度了。

猜你喜欢

转载自blog.csdn.net/fantasic_van/article/details/79081828