Man*_*dan 6 spring spring-3 spring-java-config spring-4
我有src/main/resources以下文件
bpp-dev.properties
bpp-prod.properties
bpp-test.properties
Run Code Online (Sandbox Code Playgroud)
通过我的STS,我可以在两个位置定义密钥envB。
VM argument如-DenvB=devEnvironment如变量 envB和价值 prod如果在Configuration课堂上,我有以下内容。
@Configuration
@PropertySource("classpath:/com/manuel/jordan/properties/bpp-${envB}.properties")
public class PropertiesConfiguration {
Run Code Online (Sandbox Code Playgroud)
它工作正常,但始终优先于System Propertiesover Environment Variables,这是默认行为。我在这里没问题。
但是,如果我想与显式地工作Environment Variables,以下失败
@Configuration
@PropertySource("classpath:/com/manuel/jordan/properties/bpp-#{systemEnvironment['envB']}.properties")
public class PropertiesConfiguration {
Run Code Online (Sandbox Code Playgroud)
我总是收到:
Caused by: java.io.FileNotFoundException:
class path resource
[com/manuel/jordan/properties/bpp-#{systemEnvironment['envB']}.properties]
cannot be opened because it does not exist
Run Code Online (Sandbox Code Playgroud)
我该如何解决?
如果我使用该功能@PropertySource并且只是在同一@Configuration堂课上玩,那么我将使用以下内容:
@Value("#{systemProperties['envB']}")
private String propertiesEnvB;
@Value("#{systemEnvironment['envB']}")
private String environmentEnvB;
Run Code Online (Sandbox Code Playgroud)
待稍后打印,两者都可以正常工作。
| 归档时间: |
|
| 查看次数: |
1085 次 |
| 最近记录: |