问题标签 [apache-commons-config]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1508 浏览

java - 解析自定义 xml 配置文件

我的目标是 java 1.5 我有一个从另一个软件提供商提供的自定义配置文件,我需要阅读它

我需要把它放在一个哈希映射中并作为访问它。

MyPropertyManager.getProperty("DEFAULT","LOGGER_NAME")

我认为我可以在 HashMap 中加载信息,我可以使用 DEFAULT.LOGGER_NAME 之类的键访问

我可以使用 APACHE COMMONS 配置(如何?)还是太复杂而使用 Xpath 更好?

0 投票
1 回答
1238 浏览

java - Apache Commons Configuration 基于父级获取属性,属性等于值

我正在使用带有 XML 的 Apache Commons Configuration 来配置我的应用程序,但在获取我想要的属性时遇到了麻烦。

我有以下 XML 结构(只是为了说明问题的最小结构):

据我了解,我在这里获得火星terrain设置的最佳方法是:

不幸的是,我的应用程序没有/不应该有这些行星索引的任何概念。至少,索引不会是一致的。它们可能随时更改,因此如上所述通过索引引用它们是不可靠的。

所以,我想做的是这样的:

正如您可能已经猜到的那样,这不起作用。我发现这样做的唯一其他方法是迟钝且不可接受的:

我相信你可以明白为什么这是不可取的。现在,我正在考虑包装/扩展 Apache Commons 配置库以添加此类功能,但我只是不愿意接受没有更简单的方法可以做到这一点.

重新审视问题

我忽略了什么,如何以更简单的方式完成?这个功能根本不存在吗?

0 投票
1 回答
951 浏览

java - Apache Commons 配置:启用自动保存的重复条目

我使用一个org.apache.commons.configuration.CombinedConfiguration包含两个org.apache.commons.configuration.XMLConfiguration实例的。一个用作默认配置并与我的 JAR 一起部署,另一个是可以覆盖默认值的用户配置。

这是一些加载实例的代码:

使用AUTO_SAVE = trueuserConfig实例会自动将更改保存到目前正在工作的文件中。我的问题是,它多次添加参数,所以配置文件看起来很混乱:

例如,我PATH_HSQL_DB在启动时更改参数。3 次启动后,该参数在分配给 的文件中存储 3 次userConfig

这是向userConfig实例添加参数的代码:

我能做些什么来防止这种情况发生?

0 投票
1 回答
438 浏览

java - Apache Commons - ConfigurationInterpolator 阻塞线程

在多线程应用程序中,我使用了很棒的 Apache Commons 库。但是,由于某种原因,我的一半线程在调用其getList和类似方法时被阻塞。

这是线程转储的示例:

每次线程被阻塞(通过getListgetInt或类似方法)时,锁都在 ConfigurationInterprator 类中。通过查看它的源代码,我了解到类的实例化是同步的——但是我只需要能够读取属性,并且不需要每次都进行插值。

Apache Commons 中是否有内置方法来克服此限制?例如,不要每次都采取插值步骤并以某种方式缓存它?

谢谢,克里斯

0 投票
2 回答
816 浏览

apache-commons-config - Commons Config - 如何删除节点?

我有一个使用 commons config (XMLConfiguration) 构建的 xml 配置文件

我可以通过获取这样的服务器列表来获取要更新的正确节点:

我不明白如何删除节点。如果我调用 server.clear(),数据会消失,但会保留一个空节点。

我想做的是完全删除节点。

0 投票
2 回答
158 浏览

java - 将配置文件迁移到新版本的策略应该是什么?

我知道这是完全依赖于实现的问题,但想知道用于迁移配置文件的一般策略。

我们有一个产品可以从属性/XML 文件中读取一些配置。在属性文件中配置了一些默认值。客户可以根据自己的需要更改属性。现在假设我们在文件中更改/添加一些属性并且客户迁移到更新的版本。我们应该如何将客户特定的配置与新添加/更新的属性合并?一种方法是编写一个实用程序来合并文件,但不想为每个版本都这样做。

提前致谢

0 投票
1 回答
193 浏览

xml - Apache commons 配置忽略最外层的 XML 标记?为什么?难道我做错了什么?

好的,几年前我曾经使用过 apache commons config,可能已经忘记了一些东西。

我对正在发生的事情感到有些困惑,这对我来说似乎违反直觉。

所以,这是我的代码:

这是我的 xml 配置文件:

但是,我的代码不会像我预期的那样读取收件人标签。

相反,我必须修改我的配置文件看起来像这样:

因此,在查找我需要的配置项时,似乎必须在 XPath 表达式中忽略最外层的标记。

这是为什么?这是设计使然吗?我做错了什么吗?

0 投票
1 回答
2549 浏览

java - 如何加载位于 jar 文件中的属性文件

如何加载放置在可执行 jar 文件的资源文件夹中的属性文件。在这里,我的应用程序本身是一个 jar,它自己执行。它需要在运行时根据代码中提到的路径找到这个属性文件(放置在资源文件夹下)。我使用了以下两种方法,但对我没有帮助。这里的要点是,当我在 Eclipse 中执行时,这两个选项都可以正常工作,但是当我将其打包到可执行 jar 中时则不起作用。它抛出 NullPointerException。我在这里看到的唯一问题是 jar 无法选择具有给定路径的属性文件。任何帮助,将不胜感激。

方法一:使用 Apache Commons 配置

在上述情况下,我得到了 ConfigurationException。类无法找到给定路径中提到的文件。

方法二:使用getResourceAsStream。我知道如果我们要在任何其他位置从网络加载文件,getResource 不起作用。

在这种情况下,我得到了 nullPointerException。如果您需要更多详细信息,请告诉我。

jar 内容层次结构

0 投票
2 回答
3286 浏览

java - 使用 Apache 公共配置从字符串创建 JSON 配置

String是否可以在Apache commons 配置中创建一个 JSON 配置表单,以便我可以从中获取一些值?

例如,如果我有一个String包含此配置的 a,我希望能够将其转换为一个org.apache.commons.configuration2.json.JSONConfiguration,以便我可以使用该getX(nodeName)方法从中获取值(例如:config.getInt("sectionA.valueB")将返回 332):

我是否必须将字符串包装在诸如 a 之类的东西中,Reader以便我可以使用配置的load(Reader)方法?如果是,那么最短和最快的方法是什么?

0 投票
4 回答
1865 浏览

java - 如何在没有分隔的情况下获取属性?

我正在使用 commons-configuration v1.10 并且我正在使用该类PropertiesConfiguration来读取我的应用程序属性。我有一个包含逗号的属性,但是当我读入它时,它会被分隔,我不知道如何让它不分隔。

它按顺序吐出所有属性,包括逗号,但它成为问题的原因是因为我在它周围有'['和']'。

AbstractConfiguration有一个setDelimiterParsingDisabled()禁用分隔符的函数,但我找不到一个实现它来读取属性文件的类。