春季启动“ @ConditionalOnProperty(value =)”注入文字字符串

时间:2020-09-28 06:00:21

标签: java spring spring-boot kotlin properties-file

我有一个Spring Boot应用程序,其类被注释为@RestController,并且在我的类@ConditionalOnProperty(kotlin)上也有MyRestController.kt注释,如下所示:

@RestController
@ConditionalOnProperty(value = ["app.running-mode.read-write"],havingValue = "true", matchIfMissing = true)

class MyRestController(private val r : MyRestService){
    @GetMapping
    // some endpoint here
    
    @PostMapping
    // some endpoint here
}

我的application.properties看起来像这样:

app.running-mode.read-write=${MY_API_RUNNING_MODE_READ_WRITE}

有时我运行我的应用程序时,它在包含此java.lang.IllegalStateException注释ConditionalOnProperty的类上崩溃MyRestController.kt,我看到它说:

Could not resolve placeholder 'MY_API_RUNNING_MODE_READ_WRITE` in value "${MY_API_RUNNING_MODE_READ_WRITE}"

这应该是Azure设置的环境变量,但是我可能没有正确定义我的@ConditionalOnProperty以便注入日志中显示的文字字符串,而不是环境变量吗? (顺便说一下,哪个应该是布尔值truefalse

1 个答案:

答案 0 :(得分:1)

问题可能源于您如何提供价值。由于您是从环境中为不同的env注入值,因此该值可能在环境中可能不存在甚至错误提供。检查以确保提供正确。确保使用键“ MY_API_RUNNING_MODE_READ_WRITE”配置环境。

由于您正在从unique(res[order(res$Hispanic), ]) # Hispanic amakn asian blkaa nhopi white utod p1raceeth # 1 1 0 0 0 0 1 0 Hispanic any race # 20 1 NA NA NA NA NA NA <NA> # 2 2 NA NA 1 NA NA NA Black # 9 2 0 0 0 0 1 0 White # 17 2 0 0 1 0 0 0 Black # 34 2 NA NA NA NA 1 NA White # 4 3 NA NA NA NA NA NA <NA> # 33 3 0 1 0 0 0 0 Other # 3 NA NA NA NA NA NA NA <NA> # 18 NA 0 0 0 0 0 0 unknown # 26 NA 0 0 0 0 1 0 <NA> 中读取值,因此请在删除'[]'之后尝试像下面一样提供它:

application.properties