@ConfigurationProperties と @EnableConfigurationProperties の使用

@ConfigurationProperties の役割

@ConfigurationProperties構成ファイル内のプロパティを Java クラス内のフィールドまたはプロパティにバインドするために使用されるアノテーションです。このアノテーションを使用すると、構成ファイルからアプリケーションの特定のクラスに値を簡単に注入できます。

注釈を使用するには、@ConfigurationProperties次の手順が必要です。

  1. 構成プロパティをバインドする必要があるクラスにアノテーションを追加します@ConfigurationProperties
  2. バインドするプロパティの範囲を示すために、構成ファイル内のプロパティのプレフィックスまたは完全なプロパティ パスを指定します。
  3. 構成ファイル内の属性と一致するフィールドまたはプロパティを定義し、対応するゲッター メソッドとセッター メソッドを提供します。

@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 クラス内のフィールドまたはプロパティにバインドするために使用されます。これにより、構成プロパティの値を取得してアプリケーションで使用することが簡単になります。

おすすめ

転載: blog.csdn.net/m0_59757074/article/details/131072878