我正在寻找一个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.....
}
感谢您的帮助
答案 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 *入门指南(HTML,PDF)的第2章(" Config4 *语法概述")。