我想用Java代码加载属性文件。 但我使用profile来配置-Dspring.profiles.active = local或dev ... 如何通过配置文件加载属性文件如下所示:
classpath:${spring.profiles.active}/test.properties
如何在Java代码中执行此操作? 我做了如下,但得到null。
Properties prop = new Properties();
InputStream iStream = Helper.class.getClassLoader().getResourceAsStream("test.properties");
try {
prop.load(iStream);
} catch (IOException e) {
LOG.error(e.getMessage(), e);
} finally {
try {
iStream.close();
} catch (IOException e) {
LOG.error(e.getMessage(), e);
}
}
答案 0 :(得分:0)
这是我们的一些有效代码:
String activeProfile = System.getProperty("spring.profiles.active");
InputStream workSpacesFIS = this.getClass().getClassLoader()
.getResourceAsStream(activeProfile + "/customers.txt");
if (workSpacesFIS != null) { ...
答案 1 :(得分:0)
按配置文件加载Java属性文件
public Properties getProp() throws IOException {
final Properties prop = new Properties();
prop.load(TestService.class.getResourceAsStream("/application.properties"));
String activeProfile = prop.getProperty("spring.profiles.active");
prop.load(TestService.class.getResourceAsStream("/application-"+activeProfile+".properties"));
return prop;
}