Annotation 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
- Author:
- Graeme Rocher
- See Also:
-
Required Element Summary
Required Elements -
Optional Element Summary
Optional Elements
-
Element Details
-
value
Defines the property thisEachPropertyis driven by. Should be in kebab case form. Example: "my-app.bar".- Returns:
- The property that this bean is driven by
-
catalog
PropertyCatalog catalog- Returns:
- property catalog to use. By default, uses NORMALIZATION catalog
- Since:
- 4.7.0
- Default:
NORMALIZED
-
-
includes
- Returns:
- The names of the properties to include
- Default:
{}
-
excludes
- Returns:
- The names of the properties to exclude
- Default:
{}
-
list
boolean list- Returns:
- True if the beans should be bound from a list. By default
EachPropertybinds to a map where the key is a string and the value is an instance of the annotated class.
- Default:
false
-