【Quartz】java Spring和Quartz结合定时器

一、前言

      在做.Net的项目的时候,小编使用过Quartz.Net模块,当接触了java后,发现做相关的定时任务的时候也有对应的Quartz依赖。使用方式也很一致,小编就对这个进行一个对比学习。

二、使用方式

2.1 添加maven依赖

<properties>
    <quartz.version>2.2.1quartz.version>
properties>

<dependencies>
    <dependency>
        <groupId>org.springframeworkgroupId>
        <artifactId>spring-coreartifactId>
    dependency>
    <dependency>
        <groupId>org.springframeworkgroupId>
        <artifactId>spring-context-supportartifactId>
    dependency>
    
    <dependency>
        <groupId>org.springframeworkgroupId>
        <artifactId>spring-txartifactId>
    dependency>
    
    <dependency>
        <groupId>org.quartz-schedulergroupId>
        <artifactId>quartzartifactId>
        <version>${quartz.version}version>
    dependency>
dependencies>

2.2 创建定时类

      在service层中新建一个包,包名为task,与service同级别,假设咱们这个类叫做MyJob

/**
*Createdby Ares 2017-07-18.
*/
@Component
Public class ExamManagerServiceImpl{

    public void sendWeChatMessagesTimedPush(){
        System.out.println("这里是我们的任务代码!!!!");
    }
}

2.3 配置spring的配置文件

      结合spring,如果是没有使用spring 4的注解的,就必不可少要用配置文件操作了。这里小编使用的是配置文件,需要做相关的包扫描:

      因为我们之前的配置文件中已经配置了包扫描,所以现在不用再配置,如果是一个新包,那么请在本配置文件中配置包扫描


<beans 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="examManagerServiceImpl" class="com.dmsdbj.itoo.examinationEvaluation.service.impl.ExamManagerServiceImpl" />
    <bean id="jobDetail" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
        <property name="targetObject" ref="examManagerServiceImpl" />
        <property name="targetMethod" value="sendWeChatMessagesTimedPush" />
        
        <property name="concurrent" value="false" />
    bean>


    
    <bean class="org.springframework.scheduling.quartz.CronTriggerFactoryBean" id="cronTriggerWeChatMessage">
        
        <property name="jobDetail" ref="jobDetail"/>
        
        <property name="cronExpression" value="0/30 * * * * ?"/>
    bean>


    
    <bean id="startQuertz" class="org.springframework.scheduling.quartz.SchedulerFactoryBean" lazy-init="false" >
        <property name="triggers">
            <list>
                
                <ref bean="cronTriggerWeChatMessage" />
            list>
        property>
    bean>

beans>

三、友情链接

【Quartz】定时任务(一)——Quartz.NET使用

【微信】微信消息定时推送

四、小结

      无论任何语言,都是相通的,操作都是一样的,深刻理解实现的方式才是最终的目的。

你可能感兴趣的:(➤,JAVA提高篇,------【Quartz】)