我在c:\ Temp文件夹中创建文件init.txt。

login=rtyhjmdsf
password=cxzxdrfks
fixrate=6000


如何在Spring中从文件读取参数“ fixrate”到Schedule注释?
如何在SpEL中将字符串转换为Long?

此限制不起作用(

@Component
@PropertySource("file:c:\temp\init.txt")
class CronSchedule {

@Scheduled(fixedRate = "#{Long(scheduler[fixrate])}" as Long)
fun publicImage() {
        println("I'm starting.")
}
}

最佳答案

无需将其转换为long,而是可以使用fixedRateString。

@Scheduled(fixedRateString = "${fixrate}")


下面的代码在Java中有效

@Component
@PropertySource("file:/tmp/init.txt")
class CronSchedule {

    private static final Logger log = LoggerFactory.getLogger(CronSchedule.class);

    private static final SimpleDateFormat dateFormat = new SimpleDateFormat("HH:mm:ss");

    @Scheduled(fixedRateString = "${fixrate}")
    public void reportCurrentTime() {
        log.info("The time is now {}", dateFormat.format(new Date()));
    }
}

08-07 15:17