public class CompositePropertySource extends EnumerablePropertySource<java.lang.Object>
PropertySource implementation that iterates over a set of
PropertySource instances. Necessary in cases where multiple property sources
share the same name, e.g. when multiple values are supplied to @PropertySource.
As of Spring 4.1.2, this class extends EnumerablePropertySource instead
of plain PropertySource, exposing getPropertyNames() based on the
accumulated property names from all contained sources (as far as possible).
PropertySource.StubPropertySourcelogger, name, source| Constructor and Description |
|---|
CompositePropertySource(java.lang.String name)
Create a new
CompositePropertySource. |
| Modifier and Type | Method and Description |
|---|---|
void |
addFirstPropertySource(PropertySource<?> propertySource)
Add the given
PropertySource to the start of the chain. |
void |
addPropertySource(PropertySource<?> propertySource)
Add the given
PropertySource to the end of the chain. |
boolean |
containsProperty(java.lang.String name)
Return whether this
PropertySource contains a property with the given name. |
java.lang.Object |
getProperty(java.lang.String name)
Return the value associated with the given name,
or
null if not found. |
java.lang.String[] |
getPropertyNames()
Return the names of all properties contained by the
source object (never
null). |
java.util.Collection<PropertySource<?>> |
getPropertySources()
Return all property sources that this composite source holds.
|
java.lang.String |
toString()
Produce concise output (type and name) if the current log level does not include
debug.
|
public CompositePropertySource(java.lang.String name)
CompositePropertySource.name - the name of the property sourcepublic java.lang.Object getProperty(java.lang.String name)
PropertySourcenull if not found.getProperty in class PropertySource<java.lang.Object>name - the property to findPropertyResolver.getRequiredProperty(String)public boolean containsProperty(java.lang.String name)
EnumerablePropertySourcePropertySource contains a property with the given name.
This implementation checks for the presence of the given name within the
EnumerablePropertySource.getPropertyNames() array.
containsProperty in class EnumerablePropertySource<java.lang.Object>name - the name of the property to findpublic java.lang.String[] getPropertyNames()
EnumerablePropertySourcenull).getPropertyNames in class EnumerablePropertySource<java.lang.Object>public void addPropertySource(PropertySource<?> propertySource)
PropertySource to the end of the chain.propertySource - the PropertySource to addpublic void addFirstPropertySource(PropertySource<?> propertySource)
PropertySource to the start of the chain.propertySource - the PropertySource to addpublic java.util.Collection<PropertySource<?>> getPropertySources()
public java.lang.String toString()
PropertySourceThis variable verbosity is useful as a property source such as system properties or environment variables may contain an arbitrary number of property pairs, potentially leading to difficult to read exception and log messages.
toString in class PropertySource<java.lang.Object>Log.isDebugEnabled()