寻找用于加载配置文件的酷java工具

时间:2010-12-13 21:33:28

标签: java properties config

我对默认解决方案非常满意,但还有更高级的吗?

4 个答案:

答案 0 :(得分:1)

这是一种很好的方法,允许您使用spring覆盖每个环境的默认值:

property-placeholder location from another property

答案 1 :(得分:0)

你在找什么?属性只是键/值对的一部分。

你可以使用像XML这样的更高级的proeprties,但它更加成熟。

答案 2 :(得分:0)

Apache Commons-Configuration项目有各种实现来读取,编写和管理配置文件。其中包括平面属性(文本文件中的键值对),结构化XML (配置参数可读名称的XML文件),分层 Windows INI 格式, JNDI 系统属性等。

它们支持基本数据类型(字符串,数字,布尔值),列表转换器,用于自定义数据类型,例如网址,颜色,日期等。

配置可以从各种来源读取,例如文件,输入流,内存中表示,URL,JDBC数据源,属性列表文件(plist),字符串,Applet参数,Servlet参数当然还有系统属性。

独特功能包括XPath表达式评估,可变插值器,自动重新加载,可观察配置,验证甚至多租户。

使用示例

CompositeConfiguration config = new CompositeConfiguration();
config.addConfiguration(new SystemConfiguration());
config.addConfiguration(new PropertiesConfiguration("app.properties"));

// Some impls have special features:
// xmlConfig.setValidating(true);
// propsConfig.setAutoSave(true);
// propsConfig.setReloadingStrategy(new FileChangedReloadingStrategy());

config.setListDelimiter('/');
config.addProperty("greeting", "Hello, how are you?");
config.addProperty("colors.graph", "#808080/#00FFCC/#6422FF");

String salut = config.getString("greeting");
String[] colGraph = config.getStringArray("colors.graph");

答案 3 :(得分:0)

看一下OWNER API,这是一个基于注释的迷你框架,做了一些巧妙的事情。

根据版本1.0.3,它支持对象映射(可由用户自定义),自动类型转换,变量扩展,从具有两个不同策略的多个源加载属性(合并文件或获取第一个可用的),从中导入属性地图(类似于公共记录的复合配置)。

版本1.0.4将在asap发布,它将包括对类型转换中的集合和数组的支持,两种带有通知机制的“热重新加载”(您更改磁盘上的文件并自动重新加载对象)。如果您觉得下载源代码并自行打包,那么所有这些功能都已在主分支上提供。

我正在研究更多的想法。 如果您有任何要求,我很高兴听到。有关我正在处理的其他事项,请参阅github issues