SpringBoot项目@Scheduled读取动态参数

1、基于@Scheduled可配置开发

application.propertites:  read.timer.parmas=0 0/1 * * * *
定时类: @Component public class ScheduledService { Logger logger= LoggerFactory.getLogger(ScheduledService.class);     @Scheduled(cron = "${read.timer.parmas}")     public void readConfigTable(){         logger.info("*****.read.timer.parmas");     } }  启动类: @SpringBootApplication @EnableScheduling  //必须 public class DataApplication { 	 public static void main(String[] args) {         SpringApplication.run(DataApplication.class,args);     } }

2、基于代码实现

(1)核心代码 @Component @EnableScheduling public class TestScheduledParams implements SchedulingConfigurer{     Logger logger= LoggerFactory.getLogger(TestScheduledParams.class);      public static  String DEFAULT_CORN="0/3 * * * * *";     //##动态传参要给默认值。     public static String corn=DEFAULT_CORN;      @Override     public void configureTasks(ScheduledTaskRegistrar taskRegistrar) {               taskRegistrar.addTriggerTask(new Runnable() {             @Override             public void run() {                // logger.info("定时任务逻辑");             }         }, new Trigger() {             @Override             public Date nextExecutionTime(TriggerContext triggerContext) {                 //任务触发,可修改任务的执行周期                 CronTrigger cronTrigger = new CronTrigger(corn);                  Date date = cronTrigger.nextExecutionTime(triggerContext);                 return date;             }         });     } } (2)其他类或方法动态传参赋值 TestScheduledParams.corn="0/20 * * * * *"