@ConditionalOnProperty 检查前缀是否存在

use*_*406 6 spring spring-boot

我有这个 application.yml 文件

 db1: 
   url: ...
 db2:
   url: ... 
Run Code Online (Sandbox Code Playgroud)

我想在 db1 配置存在时创建一个 bean,否则什么也不做。这是我尝试过的:

@Bean
@ConditionalOnProperty(prefix = "db1") // this throw error that name or value must be specified
@ConfigurationProperties(prefix = "db1")
public DB getDB1() {
   ...
}

Run Code Online (Sandbox Code Playgroud)

如何才能在属性文件中存在前缀时创建 bean?

小智 0

您必须指定名称或值,仅使用前缀是行不通的。

@ConditionalOnProperty(prefix = "db1", name = "url")
Run Code Online (Sandbox Code Playgroud)

或者

@ConditionalOnProperty(name = "db1.url")
Run Code Online (Sandbox Code Playgroud)