Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/375.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java-具有层次结构的配置/信息管理_Java_Configuration_Hierarchy - Fatal编程技术网

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

Java-具有层次结构的配置/信息管理,java,configuration,hierarchy,Java,Configuration,Hierarchy,我正在寻找一个java工具来管理我的客户机配置/信息。 我的客户可能有子品牌,因此在这种情况下,需要继承或覆盖某些属性 以下是一个简单的配置示例: Client 1 { address: Chicago USA Phone: 001..... Client 1.1 { address: LA USA } Client 1.2 { Phone: 005.....

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

以下是一个简单的配置示例:

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

                address: LA USA
    }
    Client 1.2 
    {
                Phone: 005.....
    }
}
因此,如果您正在获取客户端1.1,您将获得:

Client 1.1 
{

}

在获取客户端1.2时,您将获得:
客户端1.2
{
地址:美国芝加哥
电话:005。。。。。
}


感谢您的帮助

您可以根据作用域的角度,围绕多个配置文件语法(如XML或Java属性文件)中的任意一个编写一个瘦包装器类,从而实现所需的功能。使用“.”作为作用域运算符,“x.y.z”表示作用域“x.y”中的变量“z”。(如果使用XML,嵌套范围对应于嵌套元素。)要实现
查找(字符串范围,字符串localName)
操作。此操作最初将在指定的
范围
中查找
localName
。如果变量不存在,则操作将在
范围的父范围中查找,并继续向外工作到全局范围。因此,调用
lookup(“x.y”,“z”)
将尝试查找变量
x.y.z
,然后
x.z
,然后
z


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

属性文件,可能是吗?您有更具体的问题可以讨论吗?您可以试一试。我需要建立一个配置树,在访问节点时,我将获得节点的属性以及层次结构中上面的节点。
address: LA USA
Phone:   001.....