添加spring-boot-admin-starter-client依赖项后无法解析占位符

时间:2019-03-06 14:51:05

标签: java spring-boot properties cron spring-boot-admin

在我的应用程序中,我用@Scheduled(cron="${my.cron.prop}")注释了方法

我在属性文件中没有my.cron.prop,我的工作只是没有开始,但是应用程序成功启动。

但是当我添加依赖时:

compile ("de.codecentric:spring-boot-admin-starter-client:1.5.7")

我的应用程序无法启动:

Caused by: java.lang.IllegalStateException: Encountered invalid @Scheduled method 'reportCurrentTime': Could not resolve placeholder 'my.cron.prop' in value "${my.cron.prop}"

我该如何解决?

预期的行为-如果没有提供财产,请不要开始工作

2 个答案:

答案 0 :(得分:2)

我想您的应用程序不是@EnableScheduling spring-boot-admin-starter-client 是。

您可以通过提供默认值来避免这种情况:查看其他答案

解决此问题的更好方法是使用专用组件在属性可用时启动您的工作

@Component 
@ConditionalOnProperty( name = "my.cron.prop" )
public class Tasks {

    @Scheduled(cron = "${my.cron.prop}")
    public void task() {
       /*do your suff*/
    }

答案 1 :(得分:1)

您可以尝试以下操作:@Scheduled(cron="${my.cron.prop:0 0 0 1 1 ? 2090}")

在这种情况下,如果找不到该属性,Spring将使用您提供的默认值(在我的示例中为2090年触发)。