【问题标题】:Apache Java Configuration API - configuration profiles (inheritance)?Apache Java Configuration API - 配置文件(继承)?
【发布时间】:2013-02-15 12:31:13
【问题描述】:

当我使用 Zend Framework 时,我曾经有 .ini 配置文件,我可以在其中执行此操作:

[production]
setting1 = abc
setting2 = def

[development : production]
setting1 = ghi

当我打开development 应用程序配置文件时,setting1 的值为ghi,而在生产模式下为abc。是否可以在 Apache Commons Configuration 中定义此类继承设置?

我知道我可以定义多个配置文件并从中创建一个CompositeConfiuration,但是如何告诉应用程序它应该只包含不同模式下的特定文件?我还不知道如何设置这些应用程序配置文件,但另一个名为 PROFILE 的设置应该可以为我完成工作。

如果可能,我不想将设置拆分到多个文件中。

我找不到任何有关如何在 Java 中完成此操作的信息。

【问题讨论】:

    标签: java properties apache-commons-config


    【解决方案1】:

    Apache Configuration 将配置选项从文件读取到内存数据结构中。除了变量扩展,默认没有进一步的后期处理。所以你的选择是:

    • 将所有选项放在默认配置中,然后使用覆盖默认值的单个“增量”配置。将这些单独的文件与CompositeConfiuration 合并。

      此设计遵循 Java 的继承模型:您扩展的基本类型以覆盖某些值并添加新值。

    • 创建一个后处理器,它接受巨大的配置并将其转换为应用您首选的合并规则的新配置。

    • 创建一个辅助对象以在配置中按键查找值。这将允许您在查找时进行合并。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-10-19
      • 2017-08-28
      • 1970-01-01
      • 1970-01-01
      • 2016-08-22
      • 2019-03-28
      相关资源
      最近更新 更多