2017-06-19 19 views
0

クライアントの設定や情報を管理するJavaツールを探しています。 クライアントにサブブランドが含まれている可能性があるため、一部の属性を継承または上書きする必要があります。ここで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..... 

を}

そして、feクライアント1.2のためtchingあなたが得られます。 Client 1.2 { address: Chicago USA Phone: 005..... }

は、XMLやJavaプロパティとして(あなたは、いくつかの構成ファイルの構文のいずれかの周りの薄いラッパークラスを記述することによって、あなたが望むものを達成することができますヘルプ

+0

プロパティファイル、多分?私たちが議論できるより具体的な問題がありますか? –

+0

[typesafe-config](https://github.com/typesafehub/config#merging-config-trees)に試してみてください。 –

+0

私は、ノードにアクセスするときに、階層の上のノードとノードの属性を取得する構成ツリーを構築する必要があります。 – user7200316

答えて

0

いただき、ありがとうございますファイル)をスコープの観点から考えています。 "。"を使用するスコープ演算子として、 "x.y.z"はスコープ "x.y"内の変数 "z"を示します。 (入れ子スコープは、XMLを使用している場合はネストされた要素に対応します。)lookup(String scope, String localName)操作を実装したいとします。この操作では、最初にscopelocalNameが検索されます。変数がそこに存在しない場合、演算子は親スコープのscopeを調べ、グローバルスコープの外側に向かって作業を続けます。したがって、lookup("x.y", "z")を呼び出すと、変数x.y.z、次にx.z、次にzが見つかりません。

別のアプローチは、私が書いたConfig4J構成ファイルパーサーを使用することです。特に、@copyFromコマンド(Config4Jではすべてのキーワードが@で始まり、キーワードとの重複を避けるため)では、あるスコープの内容を別のスコープにコピーすることができます。これにより、構成情報を再利用するためのメカニズムが提供されます。詳細は、Config4 *入門ガイドHTMLPDF)の第2章(「Config4 *構文の概要」)を参照してください。

関連する問題