Apache Java配置API-配置概要文件(继承)



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

[production]
setting1 = abc
setting2 = def
[development : production]
setting1 = ghi

当我打开development应用程序配置文件时,setting1的值为ghi,而在投影模式中为abc。是否可以在Apache Commons配置中定义这样的继承设置?

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

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

我找不到任何关于如何在Java中实现这一点的信息。

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

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

    这个设计遵循Java的继承模型:基本类型,您可以扩展它来覆盖一些值并添加新值。

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

  • 创建一个助手对象,通过配置中的键查找值。这将允许您在查找时进行合并。

最新更新