プロパティのカスタムPropertyPlaceholderConfigurerへの置換

私が取り組んでいるプロジェクトでは、特別なカスタムロジックを実行するSpring ProperytPlaceholderConfigurerのカスタム拡張を作成しています。このロジックの一部は、リモートWebサービスが使用するプロパティを要求することです。これを設定して、システムプロパティを使ってWebサービスの詳細を指定して正しいプロパティを取得するようにしています。システムプロパティを正しく代用することができません。

私の春の定義は次のようになります:


    
    
    

これらのプロパティの値は、プロパティを提供するサービスへのURLを生成するために、コンフィギュレータの内部で使用されます。しかし、実際のシステムプロパティ値で置き換えられるわけではなく、URLには上記の文字列が含まれています。$ {}はそのままです。

私は、Stringの代わりにResource型のBeanプロパティを作成すると正しく置換されることを発見しましたが、これは実際にはあまり役に立ちません。

これまでに試したことは:

  • 接頭辞付きの別のPropertyPlaceholderConfigurerを追加し、接頭辞付きのプロパティを使用します。
  • "systemPropertiesModeName"を使用したさまざまな設定
  • システムプロパティでコンストラクタ-argを指定してString型のBeanを定義し、そのBeanへの参照をプロパティに使用する

Spring 3に移行していないので、これはすべてSpring 2.5.6で動作する必要があります(ただし、まだまだですが)

私が紛失していることに関するアドバイスはありますか?私はこれがまったく自明ではないだろうと確信していますが、私はそれを動作させることはできません...

0
コンテナのシステムプロパティとして。または、特定の状況では、System.setProperty()をユニットテストで使用して、Springコンテキストをロードする前に...
追加された 著者 Graham,
それはまったく触れられていない...私はただ理由を発見した。リソースの動作は、デフォルトで登録されているResourceEditorのために、システムプロパティ[システムプロパティのみ]をリソースロケーションに置き換える。私のセッターはここで働かせましたが、それは理想的な解決策ではありません...
追加された 著者 Graham,
変数 environmentServiceLocation はどこで宣言していますか?
追加された 著者 ŁukaszBachman,
カスタム EnvironmentServicePropertyPlaceholderConfigurer searchSystemEnvironment という PropertyPlaceholderConfigurer のフィールドの値を上書きするかどうかを確認してください。デフォルトは true です。
追加された 著者 ŁukaszBachman,

答えはありません

0