## org.springframework.core.env
Class AbstractPropertyResolver

    java.lang.Object
      org.springframework.core.env.AbstractPropertyResolver

All Implemented Interfaces:
  ConfigurablePropertyResolver, PropertyResolver

Direct Known Subclasses:
  PropertySourcesPropertyResolver

    public abstract class AbstractPropertyResolver

extends Object
implements ConfigurablePropertyResolver

Abstract base class for resolving properties against any underlying source.

Since:
  3.1
Author:
  Chris Beams

Field Summary
`protected ConfigurableConversionService` `conversionService`
`protected Log` `logger`

Constructor Summary
`AbstractPropertyResolver()`

Method Summary
`ConfigurableConversionService` `getConversionService()`

`

`<T> T`

`

`getProperty(String key, Class<T> targetType, T defaultValue)`
Return the property value associated with the given key, or `defaultValue` if the key cannot be resolved.

`String` `getProperty(String key, String defaultValue)` Return the property value associated with the given key, or `defaultValue` if the key cannot be resolved.
`String` `getRequiredProperty(String key)` Return the property value associated with the given key, converted to the given targetType (never `null`).

`

`<T> T`

`

`getRequiredProperty(String key, Class<T> valueType)`
Return the property value associated with the given key, converted to the given targetType (never `null`).

`String` `resolvePlaceholders(String text)` Resolve ${...} placeholders in the given text, replacing them with corresponding property values as resolved by `PropertyResolver.getProperty(java.lang.String)`.
`String` `resolveRequiredPlaceholders(String text)` Resolve ${...} placeholders in the given text, replacing them with corresponding property values as resolved by `PropertyResolver.getProperty(java.lang.String)`.
`void` `setConversionService(ConfigurableConversionService conversionService)` Set the `ConfigurableConversionService` to be used when performing type conversions on properties.
`void` `setPlaceholderPrefix(String placeholderPrefix)` Set the prefix that placeholders replaced by this resolver must begin with.
`void` `setPlaceholderSuffix(String placeholderSuffix)` Set the suffix that placeholders replaced by this resolver must end with.
`void` `setRequiredProperties(String... requiredProperties)` Specify which properties must be present, to be verified by `ConfigurablePropertyResolver.validateRequiredProperties()`.
`void` `setValueSeparator(String valueSeparator)` Specify the separating character between the placeholders replaced by this resolver and their associated default value, or `null` if no such special character should be processed as a value separator.
`void` `validateRequiredProperties()` Validate that each of the properties specified by `ConfigurablePropertyResolver.setRequiredProperties(java.lang.String...)` is present and resolves to a non-`null` value.

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Methods inherited from interface org.springframework.core.env.PropertyResolver
`containsProperty, getProperty, getProperty, getPropertyAsClass`

Field Detail

### logger

    protected final Log logger

### conversionService

    protected ConfigurableConversionService conversionService

Constructor Detail

### AbstractPropertyResolver

    public AbstractPropertyResolver()

Method Detail

### getConversionService

    public ConfigurableConversionService getConversionService()

  Specified by:
    `getConversionService` in interface `ConfigurablePropertyResolver`
  Returns:
    the `ConfigurableConversionService` used when performing type conversions on properties.

    The configurable nature of the returned conversion service allows for the convenient addition and removal of individual `Converter` instances:

         ConfigurableConversionService cs = env.getConversionService();
         cs.addConverter(new FooConverter());

  See Also:
    `PropertyResolver.getProperty(String, Class)`, `ConverterRegistry.addConverter(org.springframework.core.convert.converter.Converter<?, ?>)`

### setConversionService

    public void setConversionService(ConfigurableConversionService conversionService)

  Description copied from interface: `ConfigurablePropertyResolver`
  Set the `ConfigurableConversionService` to be used when performing type conversions on properties.

  Note: as an alternative to fully replacing the `ConversionService`, consider adding or removing individual `Converter` instances by drilling into `ConfigurablePropertyResolver.getConversionService()` and calling methods such as `#addConverter`.

  Specified by:
    `setConversionService` in interface `ConfigurablePropertyResolver`
  See Also:
    `PropertyResolver.getProperty(String, Class)`, `ConfigurablePropertyResolver.getConversionService()`, `ConverterRegistry.addConverter(org.springframework.core.convert.converter.Converter<?, ?>)`

### getProperty

    public String getProperty(String key,
                              String defaultValue)

  Description copied from interface: `PropertyResolver`
  Return the property value associated with the given key, or `defaultValue` if the key cannot be resolved.

  Specified by:
    `getProperty` in interface `PropertyResolver`
  Parameters:
    `key` - the property name to resolve
    `defaultValue` - the default value to return if no value is found
  See Also:
    `PropertyResolver.getRequiredProperty(String)`, `PropertyResolver.getProperty(String, Class)`

### getProperty

    public <T> T getProperty(String key,
                             Class<T> targetType,
                             T defaultValue)

  Description copied from interface: `PropertyResolver`
  Return the property value associated with the given key, or `defaultValue` if the key cannot be resolved.

  Specified by:
    `getProperty` in interface `PropertyResolver`
    `defaultValue` - the default value to return if no value is found
  See Also:
    `PropertyResolver.getRequiredProperty(String, Class)`

### setRequiredProperties

    public void setRequiredProperties(String... requiredProperties)

  Description copied from interface: `ConfigurablePropertyResolver`
  Specify which properties must be present, to be verified by `ConfigurablePropertyResolver.validateRequiredProperties()`.

  Specified by:
    `setRequiredProperties` in interface `ConfigurablePropertyResolver`

### validateRequiredProperties

    public void validateRequiredProperties()

  Description copied from interface: `ConfigurablePropertyResolver`
  Validate that each of the properties specified by `ConfigurablePropertyResolver.setRequiredProperties(java.lang.String...)` is present and resolves to a non-`null` value.

  Specified by:
    `validateRequiredProperties` in interface `ConfigurablePropertyResolver`

### getRequiredProperty

    public String getRequiredProperty(String key)
                               throws IllegalStateException

  Description copied from interface: `PropertyResolver`
  Return the property value associated with the given key, converted to the given targetType (never `null`).

  Specified by:
    `getRequiredProperty` in interface `PropertyResolver`
  Throws:
    `IllegalStateException` - if the key cannot be resolved
  See Also:
    `PropertyResolver.getRequiredProperty(String, Class)`

### getRequiredProperty

    public <T> T getRequiredProperty(String key,
                                     Class<T> valueType)
                          throws IllegalStateException

  Description copied from interface: `PropertyResolver`
  Return the property value associated with the given key, converted to the given targetType (never `null`).

  Specified by:
    `getRequiredProperty` in interface `PropertyResolver`
  Throws:
    `IllegalStateException` - if the given key cannot be resolved

### setPlaceholderPrefix

    public void setPlaceholderPrefix(String placeholderPrefix)

  Set the prefix that placeholders replaced by this resolver must begin with. The default is "${".

  Specified by:
    `setPlaceholderPrefix` in interface `ConfigurablePropertyResolver`
  See Also:
    `SystemPropertyUtils.PLACEHOLDER_PREFIX`

### setPlaceholderSuffix

    public void setPlaceholderSuffix(String placeholderSuffix)

  Set the suffix that placeholders replaced by this resolver must end with. The default is "}".

  Specified by:
    `setPlaceholderSuffix` in interface `ConfigurablePropertyResolver`
  See Also:
    `SystemPropertyUtils.PLACEHOLDER_SUFFIX`

### setValueSeparator

    public void setValueSeparator(String valueSeparator)

  Specify the separating character between the placeholders replaced by this resolver and their associated default value, or `null` if no such special character should be processed as a value separator. The default is ":".

  Specified by:
    `setValueSeparator` in interface `ConfigurablePropertyResolver`
  See Also:
    `SystemPropertyUtils.VALUE_SEPARATOR`

### resolvePlaceholders

    public String resolvePlaceholders(String text)

  Description copied from interface: `PropertyResolver`
  Resolve ${...} placeholders in the given text, replacing them with corresponding property values as resolved by `PropertyResolver.getProperty(java.lang.String)`. Unresolvable placeholders with no default value are ignored and passed through unchanged.

  Specified by:
    `resolvePlaceholders` in interface `PropertyResolver`
  Parameters:
    `text` - the String to resolve
  Returns:
    the resolved String (never `null`)
  See Also:
    `PropertyResolver.resolveRequiredPlaceholders(java.lang.String)`, `SystemPropertyUtils.resolvePlaceholders(String)`

### resolveRequiredPlaceholders

    public String resolveRequiredPlaceholders(String text)
                                       throws IllegalArgumentException

  Description copied from interface: `PropertyResolver`
  Resolve ${...} placeholders in the given text, replacing them with corresponding property values as resolved by `PropertyResolver.getProperty(java.lang.String)`. Unresolvable placeholders with no default value will cause an IllegalArgumentException to be thrown.

  Specified by:
    `resolveRequiredPlaceholders` in interface `PropertyResolver`
  Returns:
    the resolved String (never `null`)
  Throws:
    `IllegalArgumentException` - if given text is `null`
  See Also:
    `SystemPropertyUtils.resolvePlaceholders(String, boolean)`