有没有一种方法可以在方法中使用Spring SpEL获取.properties值?

时间:2020-04-01 21:12:09

标签: spring-el

我有一个带有@Component批注的计划任务类。我已经成功地从.properties文件中提取了延迟时间的数据,但是我想稍后在该方法中使用相同的值。

@Scheduled(fixedDelayString = "${mypropvalue}")
public void doScheduledTask () throws IOException
    {
     // do some stuff

    log.info("The doScheduledTask finished at {} ", dateFormat.format(new Date()));
    log.info("The next task will run in {} ms", @Value("${mypropvalue}"));
    }

最后一行的@Value出现编译错误,提示“此处不允许批注”。如何从方法内部再次获得该值?而且由于我正在使用@Scheduled,所以无法将那个@Value作为参数传递。

1 个答案:

答案 0 :(得分:1)

将其添加为字段

@Value("${mypropvalue}
private long fixedDelay

然后

   this.fixedDelay

在您的方法之内。