问题标签 [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.
java - 解析自定义 xml 配置文件
我的目标是 java 1.5 我有一个从另一个软件提供商提供的自定义配置文件,我需要阅读它
我需要把它放在一个哈希映射中并作为访问它。
MyPropertyManager.getProperty("DEFAULT","LOGGER_NAME")
我认为我可以在 HashMap 中加载信息,我可以使用 DEFAULT.LOGGER_NAME 之类的键访问
我可以使用 APACHE COMMONS 配置(如何?)还是太复杂而使用 Xpath 更好?
java - Apache Commons Configuration 基于父级获取属性,属性等于值
我正在使用带有 XML 的 Apache Commons Configuration 来配置我的应用程序,但在获取我想要的属性时遇到了麻烦。
我有以下 XML 结构(只是为了说明问题的最小结构):
据我了解,我在这里获得火星terrain
设置的最佳方法是:
不幸的是,我的应用程序没有/不应该有这些行星索引的任何概念。至少,索引不会是一致的。它们可能随时更改,因此如上所述通过索引引用它们是不可靠的。
所以,我想做的是这样的:
正如您可能已经猜到的那样,这不起作用。我发现这样做的唯一其他方法是迟钝且不可接受的:
我相信你可以明白为什么这是不可取的。现在,我正在考虑包装/扩展 Apache Commons 配置库以添加此类功能,但我只是不愿意接受没有更简单的方法可以做到这一点.
重新审视问题
我忽略了什么,如何以更简单的方式完成?这个功能根本不存在吗?
java - Apache Commons 配置:启用自动保存的重复条目
我使用一个org.apache.commons.configuration.CombinedConfiguration
包含两个org.apache.commons.configuration.XMLConfiguration
实例的。一个用作默认配置并与我的 JAR 一起部署,另一个是可以覆盖默认值的用户配置。
这是一些加载实例的代码:
使用AUTO_SAVE = true
该userConfig
实例会自动将更改保存到目前正在工作的文件中。我的问题是,它多次添加参数,所以配置文件看起来很混乱:
例如,我PATH_HSQL_DB
在启动时更改参数。3 次启动后,该参数在分配给 的文件中存储 3 次userConfig
。
这是向userConfig
实例添加参数的代码:
我能做些什么来防止这种情况发生?
java - Apache Commons - ConfigurationInterpolator 阻塞线程
在多线程应用程序中,我使用了很棒的 Apache Commons 库。但是,由于某种原因,我的一半线程在调用其getList和类似方法时被阻塞。
这是线程转储的示例:
每次线程被阻塞(通过getList或getInt或类似方法)时,锁都在 ConfigurationInterprator 类中。通过查看它的源代码,我了解到类的实例化是同步的——但是我只需要能够读取属性,并且不需要每次都进行插值。
Apache Commons 中是否有内置方法来克服此限制?例如,不要每次都采取插值步骤并以某种方式缓存它?
谢谢,克里斯
apache-commons-config - Commons Config - 如何删除节点?
我有一个使用 commons config (XMLConfiguration) 构建的 xml 配置文件
我可以通过获取这样的服务器列表来获取要更新的正确节点:
我不明白如何删除节点。如果我调用 server.clear(),数据会消失,但会保留一个空节点。
我想做的是完全删除节点。
java - 将配置文件迁移到新版本的策略应该是什么?
我知道这是完全依赖于实现的问题,但想知道用于迁移配置文件的一般策略。
我们有一个产品可以从属性/XML 文件中读取一些配置。在属性文件中配置了一些默认值。客户可以根据自己的需要更改属性。现在假设我们在文件中更改/添加一些属性并且客户迁移到更新的版本。我们应该如何将客户特定的配置与新添加/更新的属性合并?一种方法是编写一个实用程序来合并文件,但不想为每个版本都这样做。
提前致谢
xml - Apache commons 配置忽略最外层的 XML 标记?为什么?难道我做错了什么?
好的,几年前我曾经使用过 apache commons config,可能已经忘记了一些东西。
我对正在发生的事情感到有些困惑,这对我来说似乎违反直觉。
所以,这是我的代码:
这是我的 xml 配置文件:
但是,我的代码不会像我预期的那样读取收件人标签。
相反,我必须修改我的配置文件看起来像这样:
因此,在查找我需要的配置项时,似乎必须在 XPath 表达式中忽略最外层的标记。
这是为什么?这是设计使然吗?我做错了什么吗?
java - 如何加载位于 jar 文件中的属性文件
如何加载放置在可执行 jar 文件的资源文件夹中的属性文件。在这里,我的应用程序本身是一个 jar,它自己执行。它需要在运行时根据代码中提到的路径找到这个属性文件(放置在资源文件夹下)。我使用了以下两种方法,但对我没有帮助。这里的要点是,当我在 Eclipse 中执行时,这两个选项都可以正常工作,但是当我将其打包到可执行 jar 中时则不起作用。它抛出 NullPointerException。我在这里看到的唯一问题是 jar 无法选择具有给定路径的属性文件。任何帮助,将不胜感激。
方法一:使用 Apache Commons 配置
在上述情况下,我得到了 ConfigurationException。类无法找到给定路径中提到的文件。
方法二:使用getResourceAsStream。我知道如果我们要在任何其他位置从网络加载文件,getResource 不起作用。
在这种情况下,我得到了 nullPointerException。如果您需要更多详细信息,请告诉我。
jar 内容层次结构
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)
方法?如果是,那么最短和最快的方法是什么?
java - 如何在没有分隔的情况下获取属性?
我正在使用 commons-configuration v1.10 并且我正在使用该类PropertiesConfiguration
来读取我的应用程序属性。我有一个包含逗号的属性,但是当我读入它时,它会被分隔,我不知道如何让它不分隔。
它按顺序吐出所有属性,包括逗号,但它成为问题的原因是因为我在它周围有'['和']'。
AbstractConfiguration
有一个setDelimiterParsingDisabled()
禁用分隔符的函数,但我找不到一个实现它来读取属性文件的类。