springboot統合quartz(一)
3854 ワード
springbootはできるだけ少ないxmlの使用を提唱しています.
開発においては常にタイマーに関わる必要があります.注文したタイマーの使い方を見ます.
一、対応する依存を追加する
使用するquartzのバージョンが1.8.4なら、おめでとうございます.org.quartz.impl.JobDetailImplのバージョンは互換性がないので、高バージョンのspringの中でMethodInvoking JobDetail FactoryBenの種類が変更されました.JobDetailを初期化する時は、new JobDetailクラスが必要です.
下の二つのものを忘れずに添付してください.ビルの主は第二のものを追加することを忘れてしまいました.間違いを報告しています..
普通のスプリングブックのスタートクラスです.
こんなに多くて、あなたはすべて私を見て、やはり真実の愛です!!!
開発においては常にタイマーに関わる必要があります.注文したタイマーの使い方を見ます.
一、対応する依存を追加する
使用するquartzのバージョンが1.8.4なら、おめでとうございます.org.quartz.impl.JobDetailImplのバージョンは互換性がないので、高バージョンのspringの中でMethodInvoking JobDetail FactoryBenの種類が変更されました.JobDetailを初期化する時は、new JobDetailクラスが必要です.
下の二つのものを忘れずに添付してください.ビルの主は第二のものを追加することを忘れてしまいました.間違いを報告しています..
org.springframework
spring-context-support
org.springframework
spring-tx
org.springframework.boot
spring-boot-starter-test
test
org.springframework.boot
spring-boot-starter-web
org.quartz-scheduler
quartz
2.2.1
二、任務類import org.springframework.context.annotation.Configuration;
import org.springframework.scheduling.annotation.EnableScheduling;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
@EnableScheduling //
@Component
@Configuration
public class ScheduledTasks {
public void reportCurrentByCron(){
System.out.println ("Scheduling Tasks Examples By Cron: The time is now " + dateFormat ().format (new Date()));
}
private SimpleDateFormat dateFormat(){
return new SimpleDateFormat ("HH:mm:ss");
}
}
三、配置類は、以前にspring.xmlに配置されたモニターと似ています.@Configuration
public class QuartzConfigration {
// ScheduledTasks ,
@Bean(name="mfactoryBean")
public MethodInvokingJobDetailFactoryBean mfactoryBean(ScheduledTasks ScheduledTasks){
MethodInvokingJobDetailFactoryBean md=new MethodInvokingJobDetailFactoryBean();
//
md.setGroup("group---1");
//
md.setName("quartz---1");
// , ( ) , ( ) ,
md.setConcurrent(false);
md.setTargetObject(ScheduledTasks);
//
md.setTargetMethod("reportCurrentByCron");
return md;
}
// ,
@Bean(name="cfactoryBean")
public CronTriggerFactoryBean cfactoryBean(MethodInvokingJobDetailFactoryBean mfactoryBean){
CronTriggerFactoryBean cfb=new CronTriggerFactoryBean();
cfb.setJobDetail(mfactoryBean.getObject());
cfb.setCronExpression("*/5 * * * * ?"); //5
cfb.setName("quartz---cron");
return cfb;
}
// quartz
@Bean
public SchedulerFactoryBean sfactoryBean(Trigger cronJobTrigger){
SchedulerFactoryBean sfb=new SchedulerFactoryBean();
// , 1
sfb.setStartupDelay(5);
sfb.setTriggers(cronJobTrigger);
return sfb;
}
四、始動類普通のスプリングブックのスタートクラスです.
@SpringBootApplication
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
続いて、springboot+複数のquartz、springboot+quartz動的な配置、sprigboot+quartz+dubbを更新します.こんなに多くて、あなたはすべて私を見て、やはり真実の愛です!!!