public abstract class

PropertySource

extends Object
java.lang.Object
   ↳ org.springframework.core.env.PropertySource<T>
Known Direct Subclasses
Known Indirect Subclasses

Class Overview

Abstract base class representing a source of key/value property pairs. The underlying source object may be of any type 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.

Summary

Nested Classes
class PropertySource.StubPropertySource PropertySource to be used as a placeholder in cases where an actual property source cannot be eagerly initialized at application context creation time. 
Fields
protected final Log logger
protected final String name
protected final T source
Public Constructors
PropertySource(String name, T source)
Create a new PropertySource with the given name and source object.
PropertySource(String name)
Create a new PropertySource with the given name and with a new Object instance as the underlying source.
Public Methods
boolean containsProperty(String key)
Return whether this PropertySource contains the given key.
boolean equals(Object obj)
This PropertySource object is equal to the given object if:
  • they are the same instance
  • the name properties for both objects are equal

No properties other than name are evaluated.

String getName()
Return the name of this PropertySource
abstract Object getProperty(String key)
Return the value associated with the given key, null if not found.
T getSource()
Return the underlying source object for this PropertySource.
int hashCode()
Return a hashcode derived from the name property of this PropertySource object.
static PropertySource<?> named(String name)
Return a PropertySource implementation intended for collection comparison purposes only.
String toString()
Produce concise output (type and name) if the current log level does not include debug.
[Expand]
Inherited Methods
From class java.lang.Object

Fields

protected final Log logger

Also: SpringCore

protected final String name

Also: SpringCore

protected final T source

Also: SpringCore

Public Constructors

public PropertySource (String name, T source)

Also: SpringCore

Create a new PropertySource with the given name and source object.

public PropertySource (String name)

Also: SpringCore

Create a new 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 Methods

public boolean containsProperty (String key)

Also: SpringCore

Return whether this PropertySource contains the given key.

This implementation simply checks for a null return value from getProperty(String). Subclasses may wish to implement a more efficient algorithm if possible.

Parameters
key the property key to find

public boolean equals (Object obj)

This PropertySource object is equal to the given object if:

  • they are the same instance
  • the name properties for both objects are equal

No properties other than name are evaluated.

public String getName ()

Also: SpringCore

Return the name of this PropertySource

public abstract Object getProperty (String key)

Also: SpringCore

Return the value associated with the given key, null if not found.

Parameters
key the property key to find

public T getSource ()

Also: SpringCore

Return the underlying source object for this PropertySource.

public int hashCode ()

Return a hashcode derived from the name property of this PropertySource object.

public static PropertySource<?> named (String name)

Also: SpringCore

Return a 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.

Parameters
name the name of the comparison PropertySource to be created and returned.

public String toString ()

Produce concise output (type and name) if the current log level does not include debug. If debug is enabled, produce verbose output including hashcode of the PropertySource instance and every key/value property pair. 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.

See Also
  • Log#isDebugEnabled()