Annotation Interface ConfigurationPropertiesSource
 This annotation has no effect on the actual binding process, but serves as a hint to
 the spring-boot-configuration-processor to generate full metadata for the type.
 
 Typically, this annotation is only required for types located in a different module
 than the @ConfigurationProperties class that references them. When both types
 are in the same module, the annotation processor can automatically discover full
 metadata as long as the source is available.
 
Use this annotation when metadata for types located outside the module is needed:
- Nested types annotated by @NestedConfigurationProperty
- Base classes that a @ConfigurationProperties-annotated type extends from
 In the example below, ServerProperties is located in module "A" and
 Host in module "B":
 @ConfigurationProperties("example.server")
 class ServerProperties {
     @NestedConfigurationProperty
     private final Host host = new Host();
     public Host getHost() { ... }
     // Other properties, getter, setter.
 }
 Properties from Host are detected as they are based on the type, but
 description and default value are not. To fix this, add the
 spring-boot-configuration-processor to module "B" if it is not present already
 and update Host as follows::
 @ConfigurationPropertiesSource
 class Host {
     /**
      * URL to use.
      */
     private String url = "https://example.com";
     // Other properties, getter, setter.
 }
 Similarly the metadata of a base class that a
 @ConfigurationProperties-annotated type extends from can also be detected.
 Consider the following example:
 @ConfigurationProperties("example.client.github")
 class GitHubClientProperties extends AbstractClientProperties {
     // Additional properties, getter, setter.
 }
 As with nested types, adding @ConfigurationPropertiesSource to
 AbstractClientProperties and the spring-boot-configuration-processor to
 its module ensures full metadata generation.
- Since:
- 4.0.0