首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >apache PropertiesConfiguration不解析占位符

apache PropertiesConfiguration不解析占位符
EN

Stack Overflow用户
提问于 2019-08-29 13:22:51
回答 2查看 504关注 0票数 1

假设我有以下两个配置文件:

档案1:

代码语言:javascript
运行
复制
key1 = ${common.key1}
key2 = ${common.key2}

档案2:

代码语言:javascript
运行
复制
common.key1 = value1
common.key2 = value2

我有以下代码:

代码语言:javascript
运行
复制
import org.apache.commons.configuration.PropertiesConfiguration;
...
PropertiesConfiguration newConfig = new PropertiesConfiguration();
File configFile1 = new File("...paht to file 1");
File configFile2 = new File("...path to file 2");
newConfig.setDelimiterParsingDisabled(true);
newConfig.load(configFile2);
newConfig.load(configFile1);

Iterator<String> props = newConfig.getKeys();
while (props.hasNext()) {
    String propName = props.next();
    String propValue = newConfig.getProperty(propName).toString();
    System.out.println(propName + " = " + propValue);
}

我有以下输出:

代码语言:javascript
运行
复制
common.key1 = value1
common.key2 = value2
key1 = ${common.key1}
key2 = ${common.key2}

为什么占位符未被解析?

EN

Stack Overflow用户

回答已采纳

发布于 2019-08-29 14:27:34

请参阅文档中的此页,其中说:

下面是一些与变量插值用户应该知道的更多信息:

  • ..。
  • 变量插值由所有的属性访问方法完成。一个例外是泛型getProperty() 方法,它返回原始属性值.

这正是您在代码中使用的内容。

getProperty()也提到了这一点:

获取配置中的属性。.尚未在此级别上执行变量替换。

使用PropertiesConfiguration中可用的其他方法来获得实际的内插值。例如,调用PropertiesConfiguration上的PropertiesConfiguration将其转换为java.util.Properties对象并进行迭代。

票数 1
EN
查看全部 2 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57711195

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档