T - the source typepublic abstract class PropertySource<T> extends Object
T that encapsulates
 properties. Examples include Properties objects, Map
 objects, ServletContext and ServletConfig objects (for access to init
 parameters). Explore the PropertySource type hierarchy to see provided
 implementations.
 PropertySource objects are not typically used in isolation, but rather
 through a PropertySources object, which aggregates property sources and in
 conjunction with a PropertyResolver implementation that can perform
 precedence-based searches across the set of PropertySources.
 
PropertySource identity is determined not based on the content of
 encapsulated properties, but rather based on the name of the
 PropertySource alone. This is useful for manipulating PropertySource
 objects when in collection contexts. See operations in MutablePropertySources
 as well as the named(String) and toString() methods for details.
 
Note that when working with @Configuration classes that
 the @PropertySource
 annotation provides a convenient and declarative way of adding property sources to the
 enclosing Environment.
PropertySources, 
PropertyResolver, 
PropertySourcesPropertyResolver, 
MutablePropertySources, 
org.springframework.context.annotation.PropertySource| Modifier and Type | Class and Description | 
|---|---|
| static class  | PropertySource.StubPropertySourcePropertySourceto be used as a placeholder in cases where an actual
 property source cannot be eagerly initialized at application context
 creation time. | 
| Modifier and Type | Field and Description | 
|---|---|
| protected Log | logger | 
| protected String | name | 
| protected T | source | 
| Constructor and Description | 
|---|
| PropertySource(String name)Create a new  PropertySourcewith the given name and with a newObjectinstance as the underlying source. | 
| PropertySource(String name,
              T source)Create a new  PropertySourcewith the given name and source object. | 
| Modifier and Type | Method and Description | 
|---|---|
| boolean | containsProperty(String name)Return whether this  PropertySourcecontains the given name. | 
| boolean | equals(Object other)This  PropertySourceobject is equal to the given object if:
 
 they are the same instance
 thenameproperties for both objects are equal | 
| String | getName()Return the name of this  PropertySource. | 
| abstract Object | getProperty(String name)Return the value associated with the given name,
 or  nullif not found. | 
| T | getSource()Return the underlying source object for this  PropertySource. | 
| int | hashCode()Return a hash code derived from the  nameproperty
 of thisPropertySourceobject. | 
| static PropertySource<?> | named(String name)Return a  PropertySourceimplementation intended for collection comparison purposes only. | 
| String | toString()Produce concise output (type and name) if the current log level does not include
 debug. | 
protected final Log logger
protected final String name
protected final T source
public PropertySource(String name, T source)
PropertySource with the given name and source object.name - the associated namesource - the source objectpublic PropertySource(String name)
PropertySource with the given name and with a new
 Object instance as the underlying source.
 Often useful in testing scenarios when creating anonymous implementations that never query an actual source but rather return hard-coded values.
public String getName()
PropertySource.public T getSource()
PropertySource.public boolean containsProperty(String name)
PropertySource contains the given name.
 This implementation simply checks for a null return value
 from getProperty(String). Subclasses may wish to implement
 a more efficient algorithm if possible.
name - the property name to find@Nullable public abstract Object getProperty(String name)
null if not found.name - the property to findPropertyResolver.getRequiredProperty(String)public boolean equals(Object other)
PropertySource object is equal to the given object if:
 name properties for both objects are equal
 No properties other than name are evaluated.
public int hashCode()
name property
 of this PropertySource object.public String toString()
This 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 ObjectLog.isDebugEnabled()public static PropertySource<?> named(String name)
PropertySource implementation intended for collection comparison purposes only.
 Primarily for internal use, but given a collection of PropertySource objects, may be
 used as follows:
 
 List<PropertySource<?>> sources = new ArrayList<PropertySource<?>>();
 sources.add(new MapPropertySource("sourceA", mapA));
 sources.add(new MapPropertySource("sourceB", mapB));
 assert sources.contains(PropertySource.named("sourceA"));
 assert sources.contains(PropertySource.named("sourceB"));
 assert !sources.contains(PropertySource.named("sourceC"));
 
 The returned PropertySource will throw UnsupportedOperationException
 if any methods other than equals(Object), hashCode(), and toString()
 are called.name - the name of the comparison PropertySource to be created and returned.