2016-11-13 5 views
0

私は注釈で構成するSpringブートアプリケーションを持っています。私はすでにapplication.propertiesとapplication- {profile} .propertiesファイルを持っています。問題点Tomcat 6サーバー上にWAR外部の場所を定義して、という優先順位を持つ設定ファイルを置く必要があります。つまり、これらのプロパティファイルに設定した設定は、application.propertiesまたはapplication- {profile} .propertiesの値よりも優先されるはずです。Tomcat 6にデプロイされたSpringブートアプリケーションに外部プロパティファイルの場所を追加するにはどうすればいいですか?

これを最も簡単な方法でどのように達成できますか?

私は既に@PropertySourcesを追加しようとしましたが、それはプロパティファイルの順序で優先順位が低く、可能な解決策ではありません。プロパティファイルの読み込み順序を簡単に変更できますか?

サーバーに環境変数を追加することはできません。これは、他のデプロイされたアプリケーションに影響する可能性があるためです。 WARは自己完結型で、必要なものすべてを提供する必要があります(この外部プロパティーはファイルを上書きします)。

+0

あなたのアプリケーションをTomcat 6サーバーに展開していますか?なぜあなたはSpring-Bootを使っているのですか? –

+0

それは2016年だからですか? :)ほとんどの場合、Tomcatサーバーは近い将来にアップグレードされます。しかし、今私は解決策が必要です。 –

+0

ちょうど2016年だから理由はありません。 Spring Bootは、基本的に統合されたサーバーと完全な環境を結ぶためのものです。なぜ、追加のTomcat 6を使うのですか? –

答えて

1

spring.config.locationas described in the docを設定することもできます。また、これに関係なく適用するにはEnvironmentPostProcessorを実装できます。

university session at Devoxxにはサンプルがあり、we showcase how to read a file from the home directoryがあり、コマンドラインのプロパティの後に追加します。ほとんど同じことをして、あなたが望むように注文することができます。

サンプルアプリは、試してみたい場合はavailable hereです。

+0

spring.config.locationは、環境変数(上記で説明したように使用できません)または入力パラメータ(これはTomcatには当てはまらないと思いますが間違いかもしれません)でのみ変更できます。 –

+0

しかし、postProcessEnvironmentは有望ですね。私はそれを調べている。 –

+0

サンプルを見ると、自分のプロパティファイルがあればそれを挿入するだけで十分でした。ありがとう! –

関連する問題