アノテーションインターフェース ConfigurationPropertiesSource
@TargetSE(TYPESE)
@RetentionSE(RUNTIMESE)
@DocumentedSE
public @interface ConfigurationPropertiesSource
アノテーションが付けられた型が構成プロパティメタデータのソースであることを示します。
このアノテーションは実際のバインディングプロセスには影響しませんが、型の完全なメタデータを生成するために spring-boot-configuration-processor にヒントとして機能します。
通常、このアノテーションは、参照先の @ConfigurationProperties クラスとは異なるモジュールにある型にのみ必要です。両方の型が同じモジュールにある場合、ソースが利用可能であれば、アノテーションプロセッサーは完全なメタデータを自動的に検出できます。
モジュールの外部にある型のメタデータが必要な場合は、このアノテーションを使用します。
@NestedConfigurationPropertyでアノテーションされたネストされた型@ConfigurationPropertiesアノテーション型が拡張する基本クラス
以下の例では、ServerProperties はモジュール "A" にあり、Host はモジュール "B" にあります。
@ConfigurationProperties("example.server")
class ServerProperties {
@NestedConfigurationProperty
private final Host host = new Host();
public Host getHost() { ... }
// Other properties, getter, setter.
}Host のプロパティは型に基づいて検出されますが、説明とデフォルト値は検出されません。これを修正するには、モジュール "B" に spring-boot-configuration-processor がまだ存在しない場合は追加し、Host を以下のように更新します。
@ConfigurationPropertiesSource
class Host {
/**
* URL to use.
*/
private String url = "https://example.com";
// Other properties, getter, setter.
} 同様に、@ConfigurationProperties アノテーション付き型が拡張する基底クラスのメタデータも検出できます。次の例を参照してください。
@ConfigurationProperties("example.client.github")
class GitHubClientProperties extends AbstractClientProperties {
// Additional properties, getter, setter.
} ネストされた型と同様に、@ConfigurationPropertiesSource を AbstractClientProperties に追加し、spring-boot-configuration-processor をそのモジュールに追加すると、完全なメタデータが生成されます。
- 導入:
- 4.0.0
- 作成者:
- Stephane Nicoll