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

一、前言

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

二、使用方式

2.1 添加maven依赖

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

<dependencies>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-core</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-context-support</artifactId>
    </dependency>
    <!--spring-tx包必须导入,因为Quartz需要依赖该包-->
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-tx</artifactId>
    </dependency>
    <!--Quartzframework-->
    <dependency>
        <groupId>org.quartz-scheduler</groupId>
        <artifactId>quartz</artifactId>
        <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的注解的,就必不可少要用配置文件操作了。这里小编使用的是配置文件,需要做相关的包扫描:

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

<?xml version="1.0" encoding="UTF-8"?>
<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" />
        <!--将并发设置为false-->
        <property name="concurrent" value="false" />
    </bean>


    <!--创建CronTrigger触发器-->
    <bean class="org.springframework.scheduling.quartz.CronTriggerFactoryBean" id="cronTriggerWeChatMessage">
        <!--引用任务-->
        <property name="jobDetail" ref="jobDetail"/>
        <!--指定Cron表达式-->
        <property name="cronExpression" value="0/30 * * * * ?"/>
    </bean>


    <!--  总管理类如果将lazy-init='false'那么容器启动就会执行调度程序   -->
    <bean id="startQuertz" class="org.springframework.scheduling.quartz.SchedulerFactoryBean" lazy-init="false" >
        <property name="triggers">
            <list>
                <!--作业调度器,list下可加入其他的调度器-->
                <ref bean="cronTriggerWeChatMessage" />
            </list>
        </property>
    </bean>

</beans>

三、友情链接

四、小结

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

评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

你个佬六

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值