quartz 定时器的简单运用

刚学习quartz的小伙伴 迷茫着,网上的好像都差不多,但是一运行,各种报错~~,今天特别总结下,分享给大家。首先你得架好ssm框架

运行环境 : jdk1.8 tomcat 7 ssm框架

里面需要三个jar包 其他自己需要的jar包 自己下载哦,看来很多网上代码,都是一个jar包,写的不全部,容易报错。注意:sping这些jar包版本最好一致,不然容易冲突

 <dependency>
    <groupId>org.quartz-scheduler</groupId>
    <artifactId>quartz</artifactId>
    <version>2.2.2</version>
</dependency>

<dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-tx</artifactId>
        <version>${spring.version}</version>
    </dependency>

    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-context-support</artifactId>
        <version>${spring.version}</version<!--这个看自己版本是多少-->
    </dependency>  

1.首先在springMVC.xml 里配置 quartz 的3个bean


   <bean id="job2"   class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean"><!--注意:这个job2 是自己随便取的名字 ,你也可以自己取-->
        <property name="targetObject"  ref="studentDemo"></property>
         <!--注意:这个ref="studentDemo"  里面是和自己写的StudentDemo .java注解对应的,后面有写这个类-->
        <property name="targetMethod" value="work" /> <!--&lt;!&ndash;声明指定任务类下的方法&ndash;&gt;-->

    </bean>
   <bean id="simpleTrigger" class="org.springframework.scheduling.quartz.SimpleTriggerFactoryBean">
        <property name="jobDetail" ref="job2" />
        <property name="startDelay" value="1000" /><!-- &lt;!&ndash;&lt;&ndash; 调度工厂实例化后,经过10秒开始执行调度 &ndash;&gt;&ndash;&gt; -->
        <property name="repeatInterval" value="3000" /><!-- &lt;!&ndash;&lt;!&ndash; 每2秒调度一次 &ndash;&gt;&ndash;&gt; -->
    </bean>

    <bean class="org.springframework.scheduling.quartz.SchedulerFactoryBean">

        <property name="jobDetails">
            <list>
                <ref bean="job2" />
            </list>
        </property>

        <property name="triggers">
            <list>
                <ref bean="simpleTrigger" />
            </list>
        </property>
    </bean>
<!-- 这么写也是可以的   <bean id="cronTrigger" class="org.springframework.scheduling.quartz.CronTriggerBean">
        <property name="jobDetail" ref="job2" />
        <property name="cronExpression" value="0 30 9 * * ?" />
    </bean>

    <bean class="org.springframework.scheduling.quartz.SchedulerFactoryBean">

        <property name="jobDetails">
            <list>
                <ref bean="job2" />
            </list>
        </property>

        <property name="triggers">
            <list>
                <ref bean="cronTrigger" />
            </list>
        </property>
    </bean> -->

2.然后写一个 StudentDemo .java

package com.shy.controller;

import java.util.Date;

import org.springframework.stereotype.Component;



@Component("studentDemo")//这个与刚写的springMVC里的对应<property name="targetObject"  ref="studentDemo">
public class StudentDemo {
       //对应的方法
      public void work()  

      {  
            System.out.println("Quartz的任务调度!!!"+(new Date()).toString());  
        }  

}

这里写图片描述

有用的小伙伴点个赞~~
另外附上相关视频 :https://www.imooc.com/video/15098
相关链接 https://www.cnblogs.com/drift-ice/p/3817269.html

猜你喜欢

转载自blog.csdn.net/a520songhai/article/details/80820449