問題タブ [application.properties]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
3 に答える
2908 参照

java - Spring Boot jar が application.properties ルート フォルダを読み取らない/解析しない

状況

Spring ブート アプリケーションの太い .jar があります。application.propertiesファイルを使用して構成を外部化しました。このファイルは .jar と同じフォルダーにあり、同じフォルダー内のコマンド ラインから .jar を開始しています (コマンド「java -jar $jarFileName」を使用)。

次に、例外がスローされます。

ご覧のとおり、プロパティ ファイルから値を読み取る代わりに、次のように @Value アノテーションのテキストとして文字列を設定するだけです。

これが発生するクラスには、 の注釈が付けられてい@Componentます。Spring docs: externalized configurationによると、 Springapplication.propertiesは jar の外部のファイルを読み取る必要があります。

同じapplication.propertiesファイルを配置するsrc/main/resourcesと正常に動作するため、構成ファイルは正しいようです。

外部構成ファイルをロードしない理由はありますか?

EDIT 1--spring.config.location=file:application.propertiesまた、 and を使用して実行しようとしまし--spring.config.location=file:/full/path/to/application.propertiesたが、上記と同じ結果になりました。

編集 2: クラスパスの試行classpath代わりにfile、上記のコマンドと同じですが、fileに置き換えましたclasspath。最後にどちらも使わずに試したので、ただ--spring.config.location=/path/to/file; への相対パスとフルパスの両方を使用しapplication.propertiesます。すべての試行で同じ結果/例外が発生しました。

EDIT 3 私の注釈付きアプリケーション:

EDIT 4次のよう に a を追加しようとしましたPropertySourcesPlaceholderConfigurer:

そして、それぞれ@Valueにデフォルト値を追加しました。値ではなくデフォルト値にのみ解決されapplication.propertiesます。