Class PropertyResourceConfigurer
java.lang.Object
org.springframework.core.io.support.PropertiesLoaderSupport
org.springframework.beans.factory.config.PropertyResourceConfigurer
- All Implemented Interfaces:
BeanFactoryPostProcessor
,org.springframework.core.Ordered
,org.springframework.core.PriorityOrdered
- Direct Known Subclasses:
PlaceholderConfigurerSupport
,PropertyOverrideConfigurer
public abstract class PropertyResourceConfigurer
extends org.springframework.core.io.support.PropertiesLoaderSupport
implements BeanFactoryPostProcessor, org.springframework.core.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:
PropertyOverrideConfigurer
for "beanName.property=value" style overriding (pushing values from a properties file into bean definitions)PropertyPlaceholderConfigurer
for 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:
-
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
-
Method Summary
Modifier and TypeMethodDescriptionprotected void
convertProperties
(Properties props) Convert the given merged properties, converting property values if necessary.protected String
convertProperty
(String propertyName, String propertyValue) Convert the given property from the properties source to the value which should be applied.protected String
convertPropertyValue
(String originalValue) Convert the given property value from the properties source to the value which should be applied.int
getOrder()
void
postProcessBeanFactory
(ConfigurableListableBeanFactory beanFactory) protected abstract void
processProperties
(ConfigurableListableBeanFactory beanFactory, Properties props) Apply the given Properties to the given BeanFactory.void
setOrder
(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 Details
-
PropertyResourceConfigurer
public PropertyResourceConfigurer()
-
-
Method Details
-
setOrder
public void setOrder(int order) Set the order value of this object for sorting purposes.- See Also:
-
PriorityOrdered
-
getOrder
public int getOrder()- Specified by:
getOrder
in interfaceorg.springframework.core.Ordered
-
postProcessBeanFactory
public void postProcessBeanFactory(ConfigurableListableBeanFactory beanFactory) throws BeansException - Specified by:
postProcessBeanFactory
in interfaceBeanFactoryPostProcessor
- Parameters:
beanFactory
- the bean factory used by the application context- Throws:
BeanInitializationException
- if any properties cannot be loadedBeansException
- in case of errors
-
convertProperties
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:
-
convertProperty
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
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
-