Java Spring引导忽略Spring.config.name/location属性

Java Spring引导忽略Spring.config.name/location属性,java,spring,spring-boot,yaml,Java,Spring,Spring Boot,Yaml,我有一个非常简单的application.yml文件: 我希望能够将配置文件命名为android.yml,并将其放入 classpath:/,classpath:/config/,file:./,file:./config/ 作为ConfigFileApplicationListener类指定的默认搜索位置常量。我在与主配置相同的目录中创建了一个文件: android: clientId: 0 clientSecret: clientSecret 然后我编写了一个@Configura

我有一个非常简单的application.yml文件:

我希望能够将配置文件命名为android.yml,并将其放入

classpath:/,classpath:/config/,file:./,file:./config/
作为ConfigFileApplicationListener类指定的默认搜索位置常量。我在与主配置相同的目录中创建了一个文件:

android:
  clientId: 0
  clientSecret: clientSecret
然后我编写了一个@Configuration类,其中有一个方法通过@ConfigurationProperties获取ClientDetails的实例:

不幸的是,在自动连接之后,我得到了带有未填充字段的实例。我错过了什么

EDIT1:我找到并调试了一个方法,其中使用了CONFIG\u NAME\u PROPERTY=spring.CONFIG.NAME。这只是一种用法,containsProperty条件始终返回false:

EDIT2:尝试通过将属性移动到每个受信任客户端的单独文件来创建oauth2客户端配置。尽管配置文件处于活动状态,但应始终实例化它们。

在加载任何配置文件之前,应在命令行上设置spring.config属性

然而,看起来您真正想要的功能是。它们是为不同环境组织不同配置的一种更简单的方法。文件可以命名为applicationandroid、applicationtest等

android:
  clientId: 0
  clientSecret: clientSecret
@Configuration
public class TrustedClientInformationConfiguration {

    @Bean(name = ANDROID)
    @ConfigurationProperties(prefix = ANDROID)
    public ClientDetails getAndroidClientDetails() {
        return new BaseClientDetails();
    }

}
private Set<String> getSearchNames() {
    if (this.environment.containsProperty(CONFIG_NAME_PROPERTY)) {
        return asResolvedSet(this.environment.getProperty(CONFIG_NAME_PROPERTY),
                null);
    }
    return asResolvedSet(ConfigFileApplicationListener.this.names, DEFAULT_NAMES);
}