java重写应用程序中的值。性质
我编写与API client
连接的桌面应用程序,这个API
强制设置URL值
@Value("${ig.api.domain.URL}")
private String igApiDomainURL;
上面显示的设置igApiDomainURL
位于客户机api库的AbstractService.class
中,因此我无法更改它
我创建了BeanConfiguration.java
,它加载定义了ig.api.domain.URL
的application.properties
BeanConfiguration.java
看起来像这样:
@Configuration
@PropertySource("application.properties")
public class BeanConfiguration {
@Bean
public static PropertySourcesPlaceholderConfigurer placeholderConfigurer() {
return new PropertySourcesPlaceholderConfigurer();
}
@Bean
public HttpClient httpClient() {
return HttpClients.createDefault();
}
}
。。。和application.properties
包含:
ig.api.domain.URL=https://demo-api.ig.com/gateway/deal
我希望在riunning应用程序期间更改application.properties
中定义的URL地址(根据帐户类型更改URL地址-DEMO/LIVE)
有什么建议吗
# 1 楼答案
经过长时间的讨论,这个非常具体的场景的最终效果是:
为每个可能的配置文件创建一个属性文件,如:
属性内容示例:
在创建ApplicationContext之前设置环境:
然后手动设置属性源,即:
但这绝对不是最漂亮的解决方案