【问题标题】:Looking for cool java tool for loading config files [closed]寻找用于加载配置文件的酷 Java 工具 [关闭]
【发布时间】:2010-12-13 21:33:27
【问题描述】:

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

【问题讨论】:

    标签: java properties config


    【解决方案1】:

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

    property-placeholder location from another property

    【讨论】:

      【解决方案2】:

      你在找什么? properties 只是键/值对的列表。

      您可以使用更高级的属性,例如 XML,但它更复杂。

      【讨论】:

        【解决方案3】:

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

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

        可以从各种来源读取配置,例如文件、输入流、内存表示、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");
        

        【讨论】:

          【解决方案4】:

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

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

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

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

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2010-11-18
            • 1970-01-01
            • 2010-11-23
            • 1970-01-01
            • 2010-10-07
            • 1970-01-01
            • 2010-12-09
            • 2013-07-26
            相关资源
            最近更新 更多