Annotation Type EachProperty


  • @Documented
    @Retention(RUNTIME)
    @Target({METHOD,TYPE})
    @Singleton
    @ConfigurationReader
    public @interface EachProperty

    This annotation allows driving the production of Bean definitions from either configuration or the presence of another bean definition

    For example:

    
      @EachProperty("foo.bar")
       public class ExampleConfiguration {
       }
     

    In the above example a new ExampleConfiguration bean will be created for each item under the foo.bar key in application configuration

    A reference to the configuration entry name can be obtained with the Parameter annotation applied to a constructor argument:

    
      @EachProperty("foo.bar")
       public class ExampleConfiguration {
          ExampleConfiguration(@Parameter String name) {
              ...
          }
       }
     

    In the above example for a configuration property of foo.bar.test, the value of the name argument will be "test"

    The bean is created as a singleton with a Named qualifier matching the configuration entry name, thus allowing retrieval with:

    
      ExampleConfiguration exampleConfiguration = applicationContext.getBean(ExampleConfiguration.class, Qualifiers.byName("test"));
     

    Or alternatively dependency injection via the Named qualifier.

    This annotation is typically used in conjunction with EachBean. For example, one can drive the configuration of other beans with the EachBean annotation:

    
      @EachBean(ExampleConfiguration)
      @Singleton
       public class ExampleBean {
          ExampleBean(ExampleConfiguration config) {
              ...
          }
       }
     
    Since:
    1.0
    See Also:
    EachBean, ConfigurationProperties
    • Required Element Summary

      Required Elements 
      Modifier and Type Required Element Description
      java.lang.String value
      Defines the property this EachProperty is driven by.
    • Optional Element Summary

      Optional Elements 
      Modifier and Type Optional Element Description
      java.lang.String[] excludes  
      java.lang.String[] includes  
      boolean list  
      java.lang.String primary