1

Spring が知っているすべてのプロパティ (ライブラリによって挿入される) を含むマップを、Spring xml を介して持っている構成クラスに挿入したいと考えています。それは可能ですか?

<bean class="Config">
  <constructor-arg name="env">
    <map>
    //inject all properties?
    </map>
  </constructor-arg>
</bean>
4

3 に答える 3

1

Spring Context を注入してみませんか? コンテキストを介して、その名前で任意の Bean を検索できます。

編集:

この回答から、次を使用することもできます。

<bean class="Config">
  <constructor-arg name="env">
    <util:properties location="${path.to.properties.file}"/>
  </constructor-arg>
</bean>

「env」コンストラクター引数は java.util.Properties オブジェクトです。

于 2012-04-13T23:39:45.363 に答える
0

デフォルトのライブラリの代わりに、使用するライブラリ クラスを拡張して Bean をインスタンス化できませんか? その後、すべての値を調べることができます。

それ以外の場合は、ライブラリの署名がわかっている場合は、いつでも AOP を使用してライブラリの周りにコードを織り込み、そこにあるプロパティにアクセスできます。もう少し複雑ですが、必要な場所に移動できます。アクセス方法に応じて、 AspectJ (もう少し設定が必要) またはSpring AOPを確実に使用できます。

これについてさらに洞察が必要な場合は、お知らせください。

于 2012-04-19T17:13:05.390 に答える