Class PropertyResourceConfigurer
- java.lang.Object
- org.springframework.core.io.support.PropertiesLoaderSupport
- org.springframework.beans.factory.config.PropertyResourceConfigurer
- All Implemented Interfaces:
BeanFactoryPostProcessor,Ordered,PriorityOrdered
- Direct Known Subclasses:
PlaceholderConfigurerSupport,PropertyOverrideConfigurer
public abstract class PropertyResourceConfigurer extends PropertiesLoaderSupport implements BeanFactoryPostProcessor, PriorityOrdered
Allows for configuration of individual bean property values from a property resource, i.e. a properties file. Useful for custom config files targeted at system administrators that override bean properties configured in the application context.Two concrete implementations are provided in the distribution:
PropertyOverrideConfigurerfor "beanName.property=value" style overriding (pushing values from a properties file into bean definitions)PropertyPlaceholderConfigurerfor replacing "${...}" placeholders (pulling values from a properties file into bean definitions)
Property values can be converted after reading them in, through overriding the
convertPropertyValue(java.lang.String)method. For example, encrypted values can be detected and decrypted accordingly before processing them.- Since:
- 02.10.2003
- Author:
- Juergen Hoeller
- See Also:
PropertyOverrideConfigurer,PropertyPlaceholderConfigurer
Field Summary
Fields inherited from class org.springframework.core.io.support.PropertiesLoaderSupport
localOverride, localProperties, logger
Fields inherited from interface org.springframework.core.Ordered
HIGHEST_PRECEDENCE, LOWEST_PRECEDENCE
Constructor Summary
Constructors Constructor Description PropertyResourceConfigurer()
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description protected voidconvertProperties(Properties props)Convert the given merged properties, converting property values if necessary.protected StringconvertProperty(String propertyName, String propertyValue)Convert the given property from the properties source to the value which should be applied.protected StringconvertPropertyValue(String originalValue)Convert the given property value from the properties source to the value which should be applied.intgetOrder()Get the order value of this object.voidpostProcessBeanFactory(ConfigurableListableBeanFactory beanFactory)protected abstract voidprocessProperties(ConfigurableListableBeanFactory beanFactory, Properties props)Apply the given Properties to the given BeanFactory.voidsetOrder(int order)Set the order value of this object for sorting purposes.Methods inherited from class org.springframework.core.io.support.PropertiesLoaderSupport
loadProperties, mergeProperties, setFileEncoding, setIgnoreResourceNotFound, setLocalOverride, setLocation, setLocations, setProperties, setPropertiesArray, setPropertiesPersister
Constructor Detail
PropertyResourceConfigurer
public PropertyResourceConfigurer()
Method Detail
setOrder
public void setOrder(int order)
Set the order value of this object for sorting purposes.- See Also:
PriorityOrdered
getOrder
public int getOrder()
Description copied from interface:OrderedGet the order value of this object.Higher values are interpreted as lower priority. As a consequence, the object with the lowest value has the highest priority (somewhat analogous to Servlet
load-on-startupvalues).Same order values will result in arbitrary sort positions for the affected objects.
- Specified by:
getOrderin interfaceOrdered- Returns:
- the order value
- See Also:
Ordered.HIGHEST_PRECEDENCE,Ordered.LOWEST_PRECEDENCE
postProcessBeanFactory
public void postProcessBeanFactory(ConfigurableListableBeanFactory beanFactory) throws BeansException
- Specified by:
postProcessBeanFactoryin interfaceBeanFactoryPostProcessor- Parameters:
beanFactory- the bean factory used by the application context- Throws:
BeanInitializationException- if any properties cannot be loadedBeansException- in case of errors
convertProperties
protected void convertProperties(Properties props)
Convert the given merged properties, converting property values if necessary. The result will then be processed.The default implementation will invoke
convertPropertyValue(java.lang.String)for each property value, replacing the original with the converted value.- Parameters:
props- the Properties to convert- See Also:
processProperties(org.springframework.beans.factory.config.ConfigurableListableBeanFactory, java.util.Properties)
convertProperty
protected String convertProperty(String propertyName, String propertyValue)
Convert the given property from the properties source to the value which should be applied.The default implementation calls
convertPropertyValue(String).- Parameters:
propertyName- the name of the property that the value is defined forpropertyValue- the original value from the properties source- Returns:
- the converted value, to be used for processing
- See Also:
convertPropertyValue(String)
convertPropertyValue
protected String convertPropertyValue(String originalValue)
Convert the given property value from the properties source to the value which should be applied.The default implementation simply returns the original value. Can be overridden in subclasses, for example to detect encrypted values and decrypt them accordingly.
- Parameters:
originalValue- the original value from the properties source (properties file or local "properties")- Returns:
- the converted value, to be used for processing
- See Also:
PropertiesLoaderSupport.setProperties(java.util.Properties),PropertiesLoaderSupport.setLocations(org.springframework.core.io.Resource...),PropertiesLoaderSupport.setLocation(org.springframework.core.io.Resource),convertProperty(String, String)
processProperties
protected abstract void processProperties(ConfigurableListableBeanFactory beanFactory, Properties props) throws BeansException
Apply the given Properties to the given BeanFactory.- Parameters:
beanFactory- the BeanFactory used by the application contextprops- the Properties to apply- Throws:
BeansException- in case of errors