使用しているTomcatのバージョンはわかりませんが、catalina.shファイルのTomcat 7で変数CATALINA_OPTSを指定すると、この変数がjvmに渡されます。
しかし、環境変数を設定することは、目標を達成するための最良の方法ではないかもしれません。おそらく、個別の「app.properties」ファイルを作成し、それを次のようにapplicationContextに含めるのが最善でしょう。
<context:property-placeholder location="classpath*:app.properties" />
そしてcatalina.shのソリューション
# CATALINA_OPTS (Optional) Java runtime options used when the "start",
# "run" or "debug" command is executed.
# Include here and not in JAVA_OPTS all options, that should
# only be used by Tomcat itself, not by the stop process,
# the version command etc.
# Examples are heap size, GC logging, JMX ports etc.
例:
CATALINA_OPTS = "-Dfolder = Dev"
編集:
Windowsの場合は次のようになりますset CATALINA_OPTS="-Dfolder=Dev"
編集:
Spring構成では、$ {propertyname}と同じようにシステムプロパティを使用できます。また、プロパティ定義を含むファイルをインクルードすることもでき、context:property-placeholder
そのファイルで定義されたすべてのプロパティも構成で使用可能になります。
たとえば、基本セットのプロパティconfig.propertiesと、db接続設定(DEV.properties、UAT.properties、PROD.properties)を持つファイルのセットがあります。では、環境ごとに異なるプロパティを含めるにはどうすればよいでしょうか。たとえば、catalina.batでシステムプロパティを設定するなど、さまざまな方法で実行できます。
set CATALINA_OPTS="-Dbuild=DEV"
およびapplicationConfig.xml
<context:property-placeholder location="classpath*:${build}.properties, classpath*:config.properties" />
または、異なるビルド構成を作成し、ビルド構成ごとに1つのプロパティ(DEV、UAT、PROD)のみを最終WARに含めることができます。applicationConfigで、次のように設定します。
<context:property-placeholder location="classpath*:*.properties" />