quartz定时任务与SpringMVC集成-自动注入管理bean

通过quartz实现定时任务的管理,由于quartz本身不支持的IOC自动注入管理bean。因此在于spring集成时,可通过自定义JobFactory的形式,通过继承AdaptableJobFactory类,将quartz对象的生命周期交给Spring IOC管理。

结构:

        JobFactory.java——实现自动注入

        DBWriter.java——实现定时任务

quartz-maven坐标

		
		
		    org.quartz-scheduler
		    quartz
		    2.3.0
		

springmvc.xml配置

	
    
    
    
        
          
        
        
    

    
     
       
       
       
     
    
    
    
      
        
        	
        
      
      
       
       		
       
    

JobFactory.java类

package com.es.quartz;

import org.quartz.spi.TriggerFiredBundle;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.config.AutowireCapableBeanFactory;
import org.springframework.scheduling.quartz.AdaptableJobFactory;

/**
 * @author Anson
* Copyright by EasyShare 2018
* * All right reserved
* * Created on 2018年1月5日 上午2:01:02
* 向quartz中注入由spring管理的service
*/ public class JobFactory extends AdaptableJobFactory { @Autowired private AutowireCapableBeanFactory autowireCapableBeanFactory; public JobFactory() { } @Override protected Object createJobInstance(TriggerFiredBundle bundle) throws Exception { //调用父类 Object instance = super.createJobInstance(bundle); //自动注入 autowireCapableBeanFactory.autowireBean(instance); return instance; } }

DBWriter.java类

package com.es.quartz;
import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.quartz.QuartzJobBean;

/**
 * @author Anson
 *	Copyright by EasyShare 2017
 *  
 *  All right reserved
 *
 *  Created on 2017年6月27日 下午10:34:57
 *  用户表的数据写入
 */
public class DBWriter extends QuartzJobBean {
	
	
	public DBWriter() {
		//显示指定默认构造函数
	}
	
	@Override
	protected void executeInternal(JobExecutionContext arg0) throws JobExecutionException {
		//保存或更新信息
		//插入所需定时执行的方法
	}
}

你可能感兴趣的:(学习心得,Java学习之路)