問題の背景
springboot が起動すると、常に ftp_upload.properties が見つからないことが報告されます。
クラスメートは驚くかもしれませんが、明らかにプロジェクトの config の下にあるのに、なぜ見つからないのでしょうか? Springboot 構成ファイルの起動時の読み込みシーケンスは次のとおりであることは誰もが知っています。
最初: ./config/ (プロジェクトのルート ディレクトリの config フォルダーにある構成ファイル)。
2 番目: ./ (プロジェクトのルート ディレクトリにある設定ファイル)。
3 番目: クラスパスの下の config フォルダーにある構成ファイル。
4 番目: クラスパス下の構成ファイル。
これら 4 つは高い順に並べられており、最初の 1 つが最も優先順位が高く、プロジェクトのルート ディレクトリの config 配下の設定ファイルです。
この部分の知識は別のブログで見つけることができます: springboot 構成ファイルの読み込みシーケンス - wang_longan - Blog Park
しかし、起動エラーで見つからないと報告されるのはなぜでしょうか? これが解決策です
解決
<resource>
<directory>config</directory>
<includes>
<!-- 根据目录下的文件配置需要扫描的文件类型 -->
<include>**/*.yml</include>
<include>**/*.properties</include>
<include>**/*.xml</include>
</includes>
<filtering>false</filtering>
</resource>
<resource>
<directory>src/main/resources</directory>
<includes>
<!-- 根据目录下的文件配置需要扫描的文件类型 -->
<include>**/*.yml</include>
<include>**/*.properties</include>
<include>**/*.xml</include>
</includes>
<filtering>false</filtering>
</resource>
現時点では、ローカルでの起動は問題ありません。
このファイルも見つかります。
class の下の config にもファイルがあることがわかります。
これはスムーズですが、ほとんどのドキュメントはそこで止まります。Linux でプロジェクトを公開するときに、ftp_upload.properties ファイルが設定の下にまだ見つからないという問題が発生しました。
以下はLinuxのディレクトリです
start.sh が bin の下で起動されると、java -jar XXX.jar がこのディレクトリで起動されます。
テスト後、ftp_upload.properties を参照する Java コードをコメント アウトし、Linux プロジェクトの config にある yml ファイルのポート番号を変更しました。起動時に見つかりましたが、見つかりません。ftp_upload.properties ファイルに移動します。なぜこれほど奇妙なのでしょうか? 次に、次の構成を見つけました。
これで、ftp_upload.properties ファイルが正常に見つかります。
ftp_upload.properties配下の構成情報を変更すると、最新の変更情報を取得できます。
これで完了です。