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

Could not resolve placeholder after adding spring-boot-admin-starter-client dependency

在我的应用程序中,我使用 @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}"

我该如何解决?

预期行为 - 如果未提供 属性,则不要开始工作

您可以尝试类似的方法:@Scheduled(cron="${my.cron.prop:0 0 0 1 1 ? 2090}")

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

我猜你的应用程序没有 @EnableSchedulingspring-boot-admin-starter-client 有。

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

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

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

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