78

と の 2 つの Spring プロファイルがdevありtestます。サーバー環境でアクティブなプロファイルを設定したいのですが、コードで設定したくないので、アプリケーションをデプロイするたびに、サーバーのプロファイルに基づいてプロファイルが読み込まれます。どうやってやるの?

4

6 に答える 6

31

これを行うには、少なくとも 2 つの方法があります。

  1. web.xml でコンテキスト パラメータを定義する – 「すべての環境に 1 つのパッケージ」ステートメントを破る。私はそれをお勧めしません

  2. システム プロパティの定義-Dspring.profiles.active=your-active-profile

システム プロパティを定義する方がはるかに優れたアプローチだと思います。では、Tomcat のシステム プロパティを定義するにはどうすればよいでしょうか。インターネットでは、「catalina.sh を変更する」などの多くのアドバイスを見つけることができました。そのようなことを行うための構成ファイルが見つからないからです。catalina.sh の変更は、保守不可能な汚い解決策です。それを行うためのより良い方法があります。

Tomcat の bin ディレクトリに次の内容のファイル setenv.sh を作成するだけです。

JAVA_OPTS="$JAVA_OPTS -Dspring.profiles.active=dev"

catalina.sh start または run の実行中に自動的にロードされます。

上記のソリューションについて説明しているブログを次に示します。

于 2014-12-09T13:41:47.327 に答える