springconfig配置quarze

引入關鍵包

		<dependency>
        	<groupId>org.springframework</groupId>
        	<artifactId>spring-context-support</artifactId>
        	<version>${spring.version}</version>
    	</dependency>
                <dependency>
			<groupId>org.quartz-scheduler</groupId>
			<artifactId>quartz</artifactId>
			<version>2.2.3</version>
		</dependency>
		<dependency>
			<groupId>org.quartz-scheduler</groupId>
			<artifactId>quartz-jobs</artifactId>
			<version>2.2.3</version>
		</dependency>

配置QuarzeConfig類

package cn.aadata.mdm.webservice.config;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import org.springframework.scheduling.quartz.CronTriggerFactoryBean;
import org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean;
import org.springframework.scheduling.quartz.SchedulerFactoryBean;

import cn.aadata.mdm.quartz.MyJob;

@Configuration
@ComponentScan("cn.aadata.mdm.quartz.MyJob")
public class QuanzeConfig {
	
	@Bean
	public MyJob getMyJob(){
		return new MyJob();
	}
	@Bean
	public MethodInvokingJobDetailFactoryBean getMethodInvokingJobDetailFactoryBean(){
		MethodInvokingJobDetailFactoryBean bean=new MethodInvokingJobDetailFactoryBean();
		//使用set方式注入
		bean.setTargetObject(getMyJob()); //定時執行的對象
		bean.setTargetMethod("run"); //定時執行的方法
		return bean;
	}
	//配置一個作業執行的觸發器操作,cron表達式可以制定規定時間的執行
	@Bean
	public CronTriggerFactoryBean getCronTriggerFactoryBean(){
		CronTriggerFactoryBean bean=new CronTriggerFactoryBean();
		bean.setJobDetail(getMethodInvokingJobDetailFactoryBean().getObject());//注入作業詳情
		bean.setCronExpression("0/5 * * * * ?");//Cron表達式
		return bean;
	}
	
	//配置一個方法調試類
	@Bean
	public SchedulerFactoryBean getSchedulerFactoryBean(){
		SchedulerFactoryBean bean=new SchedulerFactoryBean();
		bean.setTriggers(getCronTriggerFactoryBean().getObject());
		return bean;
	}
	

}

任務類

package cn.aadata.mdm.quartz;

import java.text.SimpleDateFormat;
import java.util.Date;

public class MyJob {
	public void run() {
		SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
		System.out.println("自定義的作業類執行了:" + 
				sdf.format(new Date()));
	}
}

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章