問題タブ [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.
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
ます。