spring-bootでリソースファイルを外出しする方法
解決したいことはタイトル通りです。spring-boot では、DB接続情報などを src/main/resources 配下の application.properties に書くことが多いですが、このファイルを外部に置いて、コンパイル時とは別の定義で動作させる方法説明をします。
以前、『Mavenを使ってリソースファイルをJARの外部に配置する方法』というのを投稿しましたが、それの spring-boot 版です。
解決方法
spring-boot では実に簡単です。外部に配置したいリソースファイル(application.properties等)を別フォルダに配置して、実行時のクラスパスとして指定するだけです。
つまり、my-java-app.jar を実行するとして、external_resource フォルダの application.properties を読み込みたい場合、external_resource フォルダを実行時クラスパスに含めます。
my-java-app.jar
external_resource
└ application.properties
java -classpath ./external_resource -jar my-java-app.jar
解説
どうしてこのような動作になるかというと、spring-boot ではリソースファイルの読み込み優先順位が次のようになっているからです。
- 実行時のクラスパス
- コンパイル時の src/main/resources
実際には、以下で他の方が説明しているように読み込みの優先順位については、もっと詳細な定義があります。
最後に
spring-boot はいい感じにかゆいところに手が届くのでありがたいですね。そして、公式ドキュメントを翻訳してくれた @niwasawa さん、ありがとうございました。
Author And Source
この問題について(spring-bootでリソースファイルを外出しする方法), 我々は、より多くの情報をここで見つけました https://qiita.com/greencoffeemaker/items/c5039533d9e36f038bbe著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .