1

spring-config.xmlで次のプロパティが宣言されています

<util:properties id="ldap" location="classpath:com/company/project/resources/some_configuration.properties"/>

次に、サービスの実装でスプリングアノテーションを使用して、プロパティに含まれる値をいくつかのメンバー変数に注入します@Value(このアプローチは、サービスの実装で使用した中で最もクリーンでエレガントであり、可能であれば、それを変更)。

このレイアウトの問題は、プロパティファイルを変更し、すべてのデプロイメント環境(品質、本番環境など)に対してアプリケーションwarを再生成する必要があり、サーバー管理者some_configuration.propertiesがJNDI(アプリケーションサーバーはJBoss)によってパスを設定する必要があることです。

<util:properties />タグ内のjndiでファイルの場所を渡すにはどうすればよいですか?

ヘルプや提案をいただければ幸いです

編集: 誰かが私が次のようなことをすることができる解決策を出してくれるといいでしょう:

<util:properties id="ldap" location="jndi:url/some_configuration.properties"/>

または類似

4

2 に答える 2

4

古い投稿ですが、これは他の人に役立つかもしれません:

<jee:jndi-lookup id="ldapProps" jndi-name="your/jndi" resource-ref="true"/>
<util:properties id="ldap" location="file://#{ldapProps}/some_configuration.properties" />
于 2013-07-30T00:42:34.983 に答える
1

私は似たようなものを探していましたが、この回答は PropertyPlaceholderConfigurer を使用するのに役立ちます: https://stackoverflow.com/a/3486315/439427

HTH


あなたの場合PropertyPlaceholderConfigurer、Bean で を構成する必要があります。次に、次の変更を行うだけです。

<util:properties id="ldap"
  location="classpath:x/y/z/resources/${environment}.properties"/>

${environment}次のような環境変数によってどこに設定されますか。-Denvironment=dev

于 2012-05-23T20:37:16.510 に答える