按配置文件加载Java属性文件

时间:2017-04-07 04:54:20

标签: java spring spring-mvc resources load

我想用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);
        }
    }

2 个答案:

答案 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;

    }