JAVA定时任务之Spring与Quartz整合

一、添加maven依赖包

        
        
        
            org.quartz-scheduler
            quartz
            2.2.1
        
二、创建一个spring-quartz.xml文件,配置如下:



	
	
	
	
	
	
        
               
         
         
           
          
	 
	
	 
         
         
         
         
         
         
         	 0 52 14 * * ?  
	 
	 
	 
	 
	 
         
	 
	
	 
         
         
             
                 
             
         
     
其中任务配置当中的classwei为项目当中启动定时任务类的java文件路径,该类中有一个run方法,与配置对应的TimerManager类代码如下:

package com.sum.www.timer;

import org.springframework.beans.factory.annotation.Autowired;

import com.oppo.qmd.cw.manage.SplitTableData;
 

public class TimerManager { 
	
    @Autowired
    private SplitTableData mSplitTableData; 
	
	
    public void run() {  
    	try { 
    		mSplitTableData.dataMigration();
		} catch (Exception e) { 
			e.printStackTrace();
		} 
    } 
}
@Autowired注入的是需要来实现定时任务接口类,可以有多个接口类注入,在run方法体中调用接口其中的方法

其中run方法中的mSplitTableData.dataMigration()就是定时所需要执行的任务
三、在启动类中或者启动配置文件中加入spring-quartz.xml文件

第一种方式:本人的定时任务配置文件在项目src/main/resources的config文件夹下,在启动类注入该文件

@ImportResource({"classpath:/config/spring-quartz.xml"})

import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.web.servlet.ServletComponentScan;
import org.springframework.cache.annotation.EnableCaching;
import org.springframework.context.annotation.ImportResource;
import org.springframework.scheduling.annotation.EnableScheduling;


@ServletComponentScan
@SpringBootApplication
@EnableScheduling
@EnableCaching
@MapperScan({"com.sum.www.mapper"})
@ImportResource({"classpath:/config/spring-quartz.xml"})
public class Application {
    public static void main(String[] args) {
        SpringApplication.run(Application.class, args);
    }
}
第二种方式:可在spring配置文件最后中引入spring-quartz文件,spring配置文件和该文件都在config文件夹下

   
至于quartz的表达式怎么d可以自己去百度







你可能感兴趣的:(JAVA)