@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后端38节祝福语
* @Description:⽀付宝代扣对账⽂件定时⽣成
*/
@Slf4j
@Component
@EnableScheduling
国内化妆品品牌排名public class AgreeAccTask {
大蛇丸vs人柱力@Autowired
private AgreeAccMapper agreeAccMapper;
@Value("${agreeAccTask.day}")
private String day;
@Value("${agreeAccTask.dir}")
济南QQ美食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代码执⾏会报错的
以上为个⼈经验,希望能给⼤家⼀个参考,也希望⼤家多多⽀持。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论