8

私の問題は単純に見えますが、解決できません。すべての環境 (dev、qa、prod) の構成の詳細を含むプロパティ ファイルがあります。

config.properties

dev.maxLength=2000  
qa.maxLength=4000

ホスト名、環境マッピングを保持する親プロパティ ファイルがあります。

hosts.properties

host1=dev
host2=qa

プロパティ名host1は Bean に格納されますhostname

<bean id="hostname"
  factory-bean="localhostInetAddress"
  factory-method="getHostName"/> 

構成プロパティ名を解決するには、次のように文字列を結合する 必要があります。${${**hostname**}.maxLength}これは次のように解決する必要があります。${dev.maxLength}

SpEL を使用してみましたが、成功しませんでした。私はCould not resolve placeholder例外を取得しています。プロパティプレースホルダーでBean値を連結するにはどうすればよいですか? 動的プロパティ名はどのように構築されますか?

春のバージョン 3.2

4

3 に答える 3

2

独自のファイルに環境固有のプロパティを用意し、Spring プロファイルを使用することをお勧めします。たとえば、db 構成用に local.db.xml、dev.db.xml、qa.db.xml、prod.db.xml の 4 つの xml ファイルがあります。各 db.xml 内で、プロファイルを適切な値に設定します。

私のlocal.db.xmlには

<beans profile="db.local" .. >

Tomcat を起動するために、VM オプションを次のように指定します。

-Dspring.profiles.active=db.local 
于 2013-04-02T10:56:32.077 に答える