我对默认的解决方案很满意,但是有没有更高级的解决方案呢?
发布于 2010-12-14 05:36:43
这里有一个很好的方法,允许您使用spring覆盖每个环境的默认值:
发布于 2010-12-14 05:36:47
你找什么呢?属性只是键/值对的列表。
您可以使用更高级的特性,如XML,但它更具编译器。
发布于 2010-12-14 06:29:45
Apache Commons-Configuration项目有各种读、写和管理配置文件的实现。其中包括平面属性(文本文件中的键-值对)、结构化XML (配置参数具有可读名称的XML文件)、hierarchical、Windows INI format、JNDI E210、系统属性等。
它们支持基本数据类型(字符串,数字,布尔值),列表和转换器,用于自定义数据类型,如URL,颜色,日期等。
配置可以从各种源读取,例如文件、输入流、内存表示、URL、JDBC数据源、属性列表文件(plist)、字符串、小程序参数、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");https://stackoverflow.com/questions/4433682
复制相似问题