@ConfigurationProperties の役割
@ConfigurationProperties
構成ファイル内のプロパティを Java クラス内のフィールドまたはプロパティにバインドするために使用されるアノテーションです。このアノテーションを使用すると、構成ファイルからアプリケーションの特定のクラスに値を簡単に注入できます。
注釈を使用するには、@ConfigurationProperties
次の手順が必要です。
- 構成プロパティをバインドする必要があるクラスにアノテーションを追加します
@ConfigurationProperties
。 - バインドするプロパティの範囲を示すために、構成ファイル内のプロパティのプレフィックスまたは完全なプロパティ パスを指定します。
- 構成ファイル内の属性と一致するフィールドまたはプロパティを定義し、対応するゲッター メソッドとセッター メソッドを提供します。
@EnableConfigurationProperties の役割
@EnableConfigurationProperties
は、構成プロパティの自動配線を有効にするためのアノテーションです。アプリケーション内に@ConfigurationProperties
アノテーションを使用するクラスがある場合、@EnableConfigurationProperties
これらの構成属性クラスのサポートを有効にするように Spring フレームワークに指示できます。
具体的には、アノテーションが付けられたクラスでアノテーションを使用する@EnableConfigurationProperties
必要があります。@Configuration
構成クラスにアノテーションを追加することで@EnableConfigurationProperties
、構成プロパティに関連付けられたクラスをスキャンして処理するように Spring に指示できます。
たとえば、アノテーションをMyAppConfigProperties
使用して@ConfigurationProperties
アプリケーション構成プロパティをバインドする構成プロパティ クラスがあるとします。@EnableConfigurationProperties
この構成プロパティ クラスのサポートを有効にするには、次のように構成クラスにアノテーションを追加します。
@Configuration
@EnableConfigurationProperties(MyAppConfigProperties.class)
public class AppConfig {
// Configuration class
// ...
}
上記の例では、AppConfig
クラスは、のサポートを有効にする@Configuration
アノテーションを@EnableConfigurationProperties(MyAppConfigProperties.class)
持つ構成クラスとしてマークされていますMyAppConfigProperties
。
このような構成では、クラスのインスタンスをクラスにAppConfig
挿入し、その中で定義されている構成プロパティを使用できます。MyAppConfigProperties
@EnableConfigurationProperties
注釈は構成属性クラスのサポートのみを有効にし、特定の属性の注入自体は実行しないことに注意してください。プロパティの挿入を実現するには、関連する構成プロパティ クラスでアノテーションを使用し@ConfigurationProperties
、対応するプロパティと対応するメソッドをそこで定義するgetter
必要もありますsetter
。
要約すると、@EnableConfigurationProperties
アノテーションは、構成プロパティ クラスのサポートを有効にし、それらの構成プロパティ クラスをアプリケーションで使用できるように構成クラスに関連付けるために使用されます。
例
たとえば、application.properties
次のプロパティを含む構成ファイルがあるとします。
myapp.username=JohnDoe
myapp.password=secret
Java クラスを作成して、これらのプロパティをマップできます。
@ConfigurationProperties(prefix = "myapp")
public class MyAppConfig {
private String username;
private String password;
// Getter and Setter methods for the properties
// ...
}
上記のコードでは、@ConfigurationProperties(prefix = "myapp")
属性は接頭辞 . で指定されています"myapp"
。次に、username
フィールドとpassword
フィールドが構成ファイル内のプロパティと照合されます。
次に、構成クラス (通常はスタートアップ クラスまたは構成クラス) にアノテーションを付けて、構成プロパティの自動配線を有効にする必要があります@EnableConfigurationProperties
。
@Configuration
@EnableConfigurationProperties(MyAppConfig.class)
public class AppConfig {
// Configuration class
// ...
}
MyAppConfig
これで、アプリケーションが起動すると、構成ファイルのプロパティ値がクラスの対応するフィールドに挿入されます。MyAppConfig
これらのプロパティにアクセスするには、クラスのインスタンスを他のコンポーネントまたはサービスに挿入します。
要約すると、@ConfigurationProperties
アノテーションは、構成ファイル内のプロパティを Java クラス内のフィールドまたはプロパティにバインドするために使用されます。これにより、構成プロパティの値を取得してアプリケーションで使用することが簡単になります。