java.util.Properties 是不是支持嵌套属性?

Posted

技术标签:

【中文标题】java.util.Properties 是不是支持嵌套属性?【英文标题】:Does java.util.Properties support nested properties?java.util.Properties 是否支持嵌套属性? 【发布时间】:2015-03-26 17:54:15 【问题描述】:

我正在尝试在一个文件中设置特定于环境的属性,为每个运行代码的设备定制。我希望能够将一些属性嵌套在其他属性中,例如:

browser=chrome
baseUrl=$server/app/login.do
server=http://localhost

当我获得baseUrl 属性时,我希望能够获得http://localhost/app/login.do

java.util.Properties 是否支持这种行为?如果没有,是否还有另一个核心类可以做到?

【问题讨论】:

您可以使用 Apache Configuration 来执行此操作,但不能在内置类中执行此操作,除非您自己编写。 没有。很容易测试,而且可能比在这里询问更快,当然也更可靠。 @EJP 测试Properties默认 行为很容易,但可能有一些选项可以稍微改变行为,因此需要询问。我还问是否有另一个核心类确实提供了这种行为。 【参考方案1】:

答案是否定的。java.util.Properties 只对字符串进行操作。

属性列表中的每个键及其对应的值都是一个字符串。 (来自 Javadoc)

编辑: 没有核心 Java 类会这样做,因为没有核心 Java 框架/类被设计来做这样的事情。 我喜欢Typesafe's Config library。

【讨论】:

这回答了我问题的第一部分,但没有考虑其他可以满足需求的核心类。

以上是关于java.util.Properties 是不是支持嵌套属性?的主要内容,如果未能解决你的问题,请参考以下文章

java.util.properties

bean 类型 java.util.Properties 的不满足依赖项异常

java.util.Properties类

java.util.Properties

Java.util.Properties

你能推荐一些比 java.util.Properties 更高级的东西吗?