@Scheduled如何读取动态配置⽂件
@Scheduled读取动态配置⽂件
agreeAccTask:
#
# 每3分钟执⾏⼀次,handTime: 0 0/3 * * * ?    每天晚上2点 handTime: 0 0 2 * * ?
#  指定⼏天内: day 1 表⽰当前天内,2表⽰⼆天内,依次类推
#  指定⽣成⽬录路劲: dir F:/agreeacc
time: 0 0 2 * * ?
巩利day: 1
dir: F:/agreeacc3
java后端
* @Description:⽀付宝代扣对账⽂件定时⽣成
*/
@Slf4j
@Component
@EnableScheduling
dnf巨剑public class AgreeAccTask {
@Autowired
private AgreeAccMapper agreeAccMapper;
梦幻西游转区@Value("${agreeAccTask.day}")
private String day;
@Value("${agreeAccTask.dir}")
private String dir;
@Scheduled(cron="${agreeAccTask.time}")
public void AgreeAccTask(){
String today=DateUtil.date2String(new Date(),DateUtil.PATTERN_DATE);
log.info("【⽣成代扣对账⽂件开始】⽇期:"+today);
int j=Integer.parseInt(day);
SpringBoot @Scheduled 读取配置⽂件获取cron值
读取配置文件失败1、在类上加注解@Component,交给Spring管理
2、在@PropertySource指定配置⽂件名称,如下配置,指定放在src/main/resource⽬录下的application.properties⽂件
3、配置⽂件application.properties参考内容如下
#每秒钟执⾏⼀次
cron=0/1 * * * * *
import t.annotation.PropertySource;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
@Component
@PropertySource("classpath:/application.properties")
焉知非福的意思public class ScoreTask1 {
@Scheduled(cron="${cron}")
public void scoreTask(){
System.out.println("从配置⽂件读取cron表达式定时器");
}
}
妇女节送什么礼物给妈妈进⼀步衍⽣,可以把开发环境跟⽣产环境cron表达式做环境隔离,这样每次打包部署,系统⾃动执⾏配置⽂件cron表达式,减少⼿动修改代码次数。
这⾥推荐⼀个在线⽣成cron表达式的⼯具在线Cron表达式⽣成器
注意cron表达式只能配置6位参数,即秒分时⽇⽉周,有时候⽣成器会⽣成7位参数,这样在java代码执⾏会报错的
以上为个⼈经验,希望能给⼤家⼀个参考,也希望⼤家多多⽀持。