![](/img/trans.png)
[英]Setting “spring.config.name” property programmatically does not work
[英]Spring Boot ignores spring.config.name/location properties
我有一个非常简单的application.yml
文件:
spring:
config:
name: android,ios,test,web
我希望能够命名诸如android.yml
这样的配置文件并将其放入
classpath:/,classpath:/config/,file:./,file:./config/
如ConfigFileApplicationListener
类中指定的DEFAULT_SEARCH_LOCATIONS
常量一样。 我在与主配置相同的目录中创建了一个文件:
android:
clientId: 0
clientSecret: clientSecret
然后,我用一种方法编写了一个@Configuration
类,以通过@ConfigurationProperties
获取ClientDetails
的实例:
@Configuration
public class TrustedClientInformationConfiguration {
@Bean(name = ANDROID)
@ConfigurationProperties(prefix = ANDROID)
public ClientDetails getAndroidClientDetails() {
return new BaseClientDetails();
}
}
不幸的是,在自动装配之后,我得到了带有未填写字段的实例。 我错过了什么?
EDIT1:我发现并调试了使用CONFIG_NAME_PROPERTY = "spring.config.name"
的方法(这只是一种用法), containsProperty
条件始终返回false
:
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);
}
EDIT2:尝试通过将属性移动到每个受信任客户端的单独文件来创建oauth2客户端配置。 尽管配置文件处于活动状态,但应始终实例化它们。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.