外部設定#2
4847 ワード
学習目標
@ConfigurationProperties
可能であれば@Value宣言でPropertyを使うより
@ConfigurationProperties操作では、以下の機能を使用することをお勧めします.
以下の機能は@Value操作で無効にできます.
関連するアイテムを結合
複数のpropertyを組み合わせて読み込むことができます.
ex1. 複数の同じキーを持つアトリビュートを作成するには
ex2. 属性セットの処理に使用するクラスの作成
パラメータとして
bean登録&DIから他のbeanへ
上記で作成したpropertyバンドル処理クラスをbeanとして登録し、他のbeanに注入して利用できます.
ex1. ApplicationRunner
ex2. Application
参照されるのは、
ex3. アプリケーションの実行結果
ex3. アプリケーションRunnerが実装したタスクはコンソール上で良好な出力を得ていることがわかる.
フレキシブルバインド
propertyのkeynameを定義する場合は、次の方法を使用できます.
@DurationUnit
任意の時間情報propertyを定義し、この値を受け入れる場合.
時間情報リソースの追加
ex2. グループ処理クラスへのコードの追加
ex3. ApplicationRunnerクラスへのコードの追加
ex4. アプリケーションの実行結果
@DurationUnit無効化方法
時間情報構成の変更
グループ処理クラスの変更
@Validated
property値を検証できます.
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-validation</artifactId>
</dependency>
ex.NotEmpty検証
name propertyのNotEmpty検証を行います.
ex1. グループ処理クラスへのコードの追加
クラスに@Validatedを追加し、nameフィールドに@NotEmpty宣言を追加します.
ex2. 変更率
名前property値を故意に空にします.
ex3. アプリケーションの実行結果
次の図のように、エラーが発生しやすく、原因をお知らせします.
Reference
この問題について(外部設定#2), 我々は、より多くの情報をここで見つけました https://velog.io/@linger0310/외부-설정-2テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol