org.springframework.core.env

## Interface ConfigurablePropertyResolver

All Superinterfaces:
  PropertyResolver

All Known Subinterfaces:
  ConfigurableEnvironment, ConfigurableWebEnvironment

All Known Implementing Classes:
  AbstractEnvironment, AbstractPropertyResolver, MockEnvironment, PropertySourcesPropertyResolver, StandardEnvironment, StandardPortletEnvironment, StandardServletEnvironment

    public interface ConfigurablePropertyResolver
    extends PropertyResolver

Configuration interface to be implemented by most if not all `PropertyResolver` types. Provides facilities for accessing and customizing the `ConversionService` used when converting property values from one type to another.

Since:
  3.1
Author:
  Chris Beams

### Method Summary

Methods
`ConfigurableConversionService` `getConversionService()`
`void` `setConversionService(ConfigurableConversionService conversionService)` Set the `ConfigurableConversionService` to be used when performing type conversions on properties.
`void` `setIgnoreUnresolvableNestedPlaceholders(boolean ignoreUnresolvableNestedPlaceholders)` Set whether to throw an exception when encountering an unresolvable placeholder nested within the value of a given property.
`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 `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 `setRequiredProperties(java.lang.String...)` is present and resolves to a non-`null` value.

### Methods inherited from interface org.springframework.core.env.PropertyResolver

`containsProperty, getProperty, getProperty, getProperty, getProperty, getPropertyAsClass, getRequiredProperty, getRequiredProperty, resolvePlaceholders, resolveRequiredPlaceholders`

### Method Detail

#### getConversionService

    ConfigurableConversionService getConversionService()

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

    void setConversionService(ConfigurableConversionService conversionService)

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 `getConversionService()` and calling methods such as `#addConverter`.

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

#### setPlaceholderPrefix

    void setPlaceholderPrefix(String placeholderPrefix)

Set the prefix that placeholders replaced by this resolver must begin with.

#### setPlaceholderSuffix

    void setPlaceholderSuffix(String placeholderSuffix)

Set the suffix that placeholders replaced by this resolver must end with.

#### setValueSeparator

    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.

#### setRequiredProperties

    void setRequiredProperties(String... requiredProperties)

Specify which properties must be present, to be verified by `validateRequiredProperties()`.

#### validateRequiredProperties

    void validateRequiredProperties()
                                    throws MissingRequiredPropertiesException

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

Throws:
  `MissingRequiredPropertiesException` - if any of the required properties are not resolvable.

#### setIgnoreUnresolvableNestedPlaceholders

    void setIgnoreUnresolvableNestedPlaceholders(boolean ignoreUnresolvableNestedPlaceholders)

Set whether to throw an exception when encountering an unresolvable placeholder nested within the value of a given property. A `false` value indicates strict resolution, i.e. that an exception will be thrown. A `true` value indicates that unresolvable nested placeholders should be passed through in their unresolved ${...} form.

Implementations of `PropertyResolver.getProperty(String)` and its variants must inspect the value set here to determine correct behavior when property values contain unresolvable placeholders.

Since:
  3.2