2017-08-23 14 views
1

私は私のプロジェクトのために実行可能.jarを使用する場合、私は私の.jarと同じフォルダに私のapplication.propertiesファイルを置くことができ、およびすべての私のプロパティ値が拡張application.propertiesファイルからの読み取りされます。別のapplication.properties

私の質問は.wartomcatのようにすることができますか?

[UPDATE]

答えは次のとおりです。スタンドアロンTomcat上であなたはあなたがspring.config.locationプロパティセットを使用してアプリケーションを実行することができます@Strelok

答えて

3

application.properties

<tomcat>/binに感謝を入れなければならないだろう file:プロトコルを使用してプロパティファイルのパスに追加します。

# will look for /etc/myapp/application.properties 
-Dspring.config.location=file:/etc/myapp/ 

# will look for /etc/myapp/custom.properties 
-Dspring.config.location=file:/etc/myapp/custom.properties 
常に検索されの

デフォルト設定の場所:

  1. ファイル:./設定/
  2. ファイル:./
  3. クラスパス:/ configに/
  4. クラスパス:/

Spring BootのドキュメントのExternalized Configurationセクションには、もっと多くの情報があります。

+0

私は私の設定をそこに置くと(なぜなら 'tomcat'サーバ)、私のアプリはまだ入手できますコンパイルされた設定( '.war'の内部)のデータ?しかし、実行可能ファイル '.jar'ではうまく動作します。 –

+1

Tomcatはwarファイルから直接ではなく、' exploded war'フォルダからアプリケーションを実行します。 – Strelok

+0

'app.war'を' webapps'に入れたら 'application.properties'ファイルを置くべきですか? –

1

ご使用のすべてのクラスローダを理解するために、使用しているTomcatのバージョンのTomcatクラスローダを参照してください。それに応じて、アプリケーションプロパティファイルをSharedまたはCommonクラスローダに適切なディレクトリに保存し、そのディレクトリをcatalina.propertiesファイルのクラスローダエントリに追加することで追加できます。 Tomcat 7のドキュメントには共有クラスローダーが表示されませんが、catalina.propertiesにはプレースホルダがあります。もし共有が動作すれば、その代わりにその代わりに行くTomcat 7 Classloader

+0

私は 'application.properties'を任意のフォルダに置くことができます。このフォルダへのパスを' catalina.properties'ファイルに追加すると、Tomcatは自分のconfigから自分のenvプロパティを読み込みますか? –

+1

はい。 catalina.propertiesをチェックすると、 'shared.loader ='や 'common.loader'のようなプレースホルダがあります。 'shared.loader'を使用し、共有が機能しない場合は' common.loader'に戻ってください。'server.loader'を変更しないでください。 – Gautam

関連する問題