使用spring或Spring Boot集成quartz执行定时任务

最近工作中用到了quartz定时器,我自己写了个测试方法,或许用得上。

项目结构:使用spring或Spring Boot集成quartz执行定时任务_第1张图片

 

pom.xml配置


        2.2.3
        4.2.4.RELEASE
    

    
        
        
            org.quartz-scheduler
            quartz
            ${quartz.version}
        

        
            org.quartz-scheduler
            quartz-jobs
            ${quartz.version}
        

        
        
            org.springframework
            spring-context
            ${spring.version}
        

        
            org.springframework
            spring-context-support
            ${spring.version}
        
    

spring-quartz.xml配置:




    
    

    
        
            
            
        
        
        
        
        
    

    
        
            
        
        
        
            0/1 * * * * ?
        
    

    
    
        
        
            
                
                
            
        
    

编写测试类TestQuartz:

public class TestQuartz {
    public void test() {
        System.out.println("测试定时器--"
                +new SimpleDateFormat("北京时间HH时mm分ss秒").format(new Date()));
    }

}

因为我的这个测试项目并非web项目,所以我还得写一个启动Spring容器的方法。如果是web项目,在web.xml中配置好Spring相关的内容后启动Tomcat就可以让定时任务跑起来了。此处帖出我的启动方法:

AppStart:

public class AppStart {

    private static Logger logger = Logger.getLogger(AppStart.class);

    public static void main(String[] args) {
//        ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext(
//                new String[] { "classpath:spring-quartz.xml" });
        ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext(
               "classpath:spring-quartz.xml" );
        context.start();
        logger.info("服务启动成功!");
    }

}

启动main方法:

使用spring或Spring Boot集成quartz执行定时任务_第2张图片

 

-------------------------------2018.08.13分割线---------------------------------

使用Spring Boot 添加定时任务:

用Spring Boot相比上面配置一大堆xml,可谓是清爽很多了!

项目结构图:

使用spring或Spring Boot集成quartz执行定时任务_第3张图片

pom.xml配置:

    
        
        
            org.springframework.boot
            spring-boot-starter-quartz
        
        
        
            org.springframework.boot
            spring-boot-starter-thymeleaf
        
        
            org.springframework.boot
            spring-boot-starter-web
        
        
            org.springframework.boot
            spring-boot-starter-test
            test
        

        
            org.springframework.boot
            spring-boot-devtools
            true
        
    

添加测试方法:

@Component
@EnableScheduling
public class TestQuartz {
    @Scheduled(cron = "0/1 * * * * ?")
    public void test() {
        SimpleDateFormat sf = new SimpleDateFormat("北京时间HH时mm分ss秒");
        System.out.println("测试定时器--"
                +sf.format(new Date()));
    }

}

启动SpringBootDemoApplication的main方法,让定时器跑起来!

使用spring或Spring Boot集成quartz执行定时任务_第4张图片

 

你可能感兴趣的:(使用spring或Spring Boot集成quartz执行定时任务)