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

正在寻找用于加载配置文件的酷java工具,java,properties,config,Java,Properties,Config,我对默认的解决方案非常满意,但是还有更高级的吗?这里有一个很好的方法,允许您使用spring覆盖每个环境的默认值: 你在找什么?属性只是键/值对的列表 您可以使用更高级的项目,如XML,但它更易于编译。Apache项目有多种读取、写入和管理配置文件的实现。其中包括平面属性(文本文件中的键值对)、结构化XML(配置参数名称可读的XML文件)、层次属性、Windows INI格式、JNDI、系统属性等 它们支持基本数据类型(字符串、数字、布尔值)、列表和自定义数据类型转换器,如URL、颜色、日期等

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

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


你在找什么?属性只是键/值对的列表

您可以使用更高级的项目,如XML,但它更易于编译。

Apache项目有多种读取、写入和管理配置文件的实现。其中包括平面属性(文本文件中的键值对)、结构化XML(配置参数名称可读的XML文件)、层次属性Windows INI格式、JNDI系统属性

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

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

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

用法示例:

看一看,它是一个基于注释的迷你框架,做了一些巧妙的事情

根据版本1.0.3,它确实支持对象映射(可由用户自定义)、自动类型转换、变量扩展、使用两种不同策略从多个源加载属性(合并文件或使用第一个可用策略)、从映射导入属性(类似于commons logging的复合配置)

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

我正在研究更多的想法。 如果你有任何要求,我很高兴听到。看看我正在做的其他事情

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");