美文网首页JavaEEjavaJava学习笔记
java善假于物(三):quartz定时器融合spring

java善假于物(三):quartz定时器融合spring

作者: 大黄蜂coder | 来源:发表于2016-08-03 11:38 被阅读658次

前言

在spring的项目开发中,我们经常会用到定时器,虽然java本身提供了定时器,但是我为大家推荐一个更强的的作业调度框架:quartz,接下来教大家怎么利用spring全程注解的方式配置quartz

开源地址:https://github.com/bigbeef
个人博客:http://blog.cppba.com

1.maven配置

<!--quartz定时器-->
<dependency>
    <groupId>org.quartz-scheduler</groupId>
    <artifactId>quartz</artifactId>
    <version>2.2.3</version>
</dependency>

2.spring的注解配置文件QuartzConfiguration.java

package com.qingcheng.club.configuration;

import com.qingcheng.club.quartz.LoseClassQuartz;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.scheduling.quartz.CronTriggerFactoryBean;
import org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean;
import org.springframework.scheduling.quartz.SchedulerFactoryBean;

@Configuration
public class QuartzConfiguration {
    
    @Autowired
    private LoseClassQuartz loseClassQuartz;
    
    @Bean
    public MethodInvokingJobDetailFactoryBean jobDetail(){
        MethodInvokingJobDetailFactoryBean methodInvokingJobDetailFactoryBean = new MethodInvokingJobDetailFactoryBean();
        methodInvokingJobDetailFactoryBean.setTargetObject(loseClassQuartz);
        methodInvokingJobDetailFactoryBean.setTargetMethod("doJob");
        return methodInvokingJobDetailFactoryBean;
    }
    
    @Bean
    public CronTriggerFactoryBean cronTriggerBean(){
        CronTriggerFactoryBean cronTriggerFactoryBean = new CronTriggerFactoryBean();
        cronTriggerFactoryBean.setJobDetail(jobDetail().getObject());
        //每5秒执行一次
        //cronTriggerFactoryBean.setCronExpression("0/5 * * * * ?");
        //每秒执行一次,这个表达式很重要,任务调度执行频率
        cronTriggerFactoryBean.setCronExpression("* * * * * ?");
        return cronTriggerFactoryBean;
    }
    
    @Bean
    public SchedulerFactoryBean trigger(){
        SchedulerFactoryBean schedulerFactoryBean = new SchedulerFactoryBean();
        schedulerFactoryBean.setTriggers(cronTriggerBean().getObject());
        return schedulerFactoryBean;
    }
}

3.测试任务LoseClassQuartz.java

package com.qingcheng.club.quartz;

import com.qingcheng.service.BookService;
import com.qingcheng.util.Globals;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Component;

import javax.annotation.Resource;
import java.util.Date;
import java.util.List;

@Component("LoseClassQuartz")
public class LoseClassQuartz{
    
    private static Logger logger = LoggerFactory.getLogger(LoseClassQuartz.class);

    public void doJob(){
        SimpleDateFormat sdfyyyyMMddHHmmss = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        String now = sdfyyyyMMddHHmmss.format(new Date());
        System.out.println("time:"+now);
    }
}

4.运行结果:

运行成功!

相关文章

  • java善假于物(三):quartz定时器融合spring

    前言 在spring的项目开发中,我们经常会用到定时器,虽然java本身提供了定时器,但是我为大家推荐一个更强的的...

  • JAVA实现定时任务的几种方式

    JAVA实现定时任务的几种方式 @(JAVA)[spring|quartz|定时器]近期项目开发中需要动态的添加定...

  • 善假于物

    明明在幼儿园被小壮打,回家告诉妈妈,妈妈:你告诉老师了吗?把他告诉老师。 过了几天明明又哭着告诉妈妈:小壮又打我了...

  • 善假于物

    “君子生非异也,善假于物也”,语出荀子《劝学》。善假于物,意为君子的资质与一般人没有什么区别,君子之所以高...

  • 善假于物

    善借势者,一日千里。逆势而为,如逆水行舟。这个势,可能是外在环境或力量,也可能是比你强的人或者你的同伴。 ...

  • 善假于物

    阿杜最近晚上有些失眠。躺在床上的时候,总是想些乱七八糟的事情。想控制住自己吧,可往往不怎么顺利。勉强控制住自己不想...

  • 善假于物

    很多企业都期待未来,未来在哪里?距离我们有多远?未来就在现在,他吸引明智的人走向他。 鲲之大,扶摇而上几千里,善假...

  • 善假于物

    出自《荀子·劝学》,意为君子的资质与一般人没有什么区别,君子之所以高于一般人,是因为他能善于利用外物。善于利用已有...

  • “善”假于物

    荀子《劝学》中说:“君子性非异也,善假于物也”。的确,借助于“工具”的帮助,会让我们更有效率,比如骑自行车肯定比走...

  • 善假于物

    工欲善其事,必先利其器。这是在突然发现有个同名软件比另一个有更多实用简单功能时想到的句子。 与此同时,另一个名句,...

网友评论

本文标题:java善假于物(三):quartz定时器融合spring

本文链接:https://www.haomeiwen.com/subject/wvyqsttx.html