すべての* .propertiesファイルが/ etc/foo /にあるように設定ファイルを完全に外部化したいと思います。Springboot @PropertySource --spring.config.location =/etc/foo/
しかし私は一つの大きなapplication.propertiesに全てを入れる必要はないので、特定の部分を個々の* .propertiesファイルに分割します。
@PropertySourceには、application.propertiesの場合とまったく同じように、指定されたプロパティファイルの場所を解決する必要があることをどのように伝えることができますか?つまり、 " - spring.config.location "?
私のクラスには、理想的には、このようになります:
@Configuration
@PropertySource("dpuProfiles.properties")
@ConfigurationProperties("dpu.profiles")
public class DpuProfilesConfiguration {
...
}
私は明示的に「ファイル:/etc/foo/dpuProfiles.properties」を指定した場合、それは作業を行います。 "$ {spring.config.location} /dpuProfiles.properties"などのELの代用ができませんでした。変数が複数のディレクトリを含む可能性があるため、意味をなさないでしょう。
あなたはそれをすることによって、あなたの-classpath
に設定(S)のディレクトリを指定して、あなたのケースのためにあなたの
@PropertySource
にクラスパスからそれを指すことが
CLASSPATH=just_added_as_an_example_jar.jar:/etc/foo/
-classpath "$CLASSPATH"
になります。しかし、あなたが変更する必要が行うことができます
/etc/fooをクラスパスディレクトリとして使用することをお勧めします。 My @ConfigurationProperitesは正しくありましたが、プロパティ名の接頭辞を取得し、ファイル名ではなくパラメータとして取得しました。 さらに、pom.xmlのに/ etc/fooを追加して、 "mvn test"がそれを見つけられるようにしました。 –
lathspell