Java - 具有层次结构的配置/信息管理

时间:2017-06-19 08:40:36

标签: java configuration hierarchy

我正在寻找一个java工具来管理我的客户配置/信息。 我的客户可能有子品牌,所以在这种情况下,某些属性需要继承或覆盖。

以下是配置的简单示例:

    Client 1
{
   address: Chicago USA
   Phone:   001.....
   Client 1.1 
   {

                address: LA USA
    }
    Client 1.2 
    {
                Phone: 005.....
    }
}

因此,如果您正在获取客户端1.1,您将获得:

Client 1.1 

{

address: LA USA
Phone:   001.....

}

在获取客户端1.2时,您将获得: Client 1.2 { address: Chicago USA Phone: 005..... }

感谢您的帮助

1 个答案:

答案 0 :(得分:0)

通过考虑范围,可以围绕任何一种配置文件语法(例如XML或Java属性文件)编写一个瘦包装类,从而实现您的目的。使用"。"作为范围运算符," x.y.z"表示变量" z"在范围" x.y"。 (如果使用XML,嵌套作用域对应于嵌套元素。)您希望实现lookup(String scope, String localName)操作。此操作最初将在指定​​的localName中查找scope。如果该变量不存在,那么该操作将查看scope的父范围,并继续向外扩展到全局范围。因此,调用lookup("x.y", "z")将尝试查找变量x.y.z,然后x.z然后z

问题的另一种方法是使用Config4J配置文件解析器(我写的)。特别是,@copyFrom命令(在Config4J中,所有关键字都以@开头,以避免与标识符冲突的关键字)使您能够将一个范围的内容复制到另一个范围。这提供了重用配置信息的机制。有关详细信息,请参阅 Config4 *入门指南HTMLPDF)的第2章(" Config4 *语法概述")。