org.springframework.beans.factory.config
Class PropertyResourceConfigurer

java.lang.Object
  extended byorg.springframework.beans.factory.config.PropertyResourceConfigurer
All Implemented Interfaces:
BeanFactoryPostProcessor, Ordered
Direct Known Subclasses:
PropertyOverrideConfigurer, PropertyPlaceholderConfigurer

public abstract class PropertyResourceConfigurer
extends Object
implements BeanFactoryPostProcessor, Ordered

Allows for configuration of individual bean property values from a property resource, i.e. a properties file. Useful for custom config files targetted at system administrators that override bean properties configured in the application context.

2 concrete implementations are provided in the distribution:

Property values can be converted after reading them in, through overriding the convertPropertyValue 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, convertPropertyValue(java.lang.String)

Field Summary
protected  Log logger
           
 
Constructor Summary
PropertyResourceConfigurer()
           
 
Method Summary
protected  void convertProperties(Properties props)
          Convert the given merged properties, converting property values if necessary.
protected  String convertPropertyValue(String originalValue)
          Convert the given property value from the properties source to the value that should be applied.
 int getOrder()
          Return the order value of this object, higher value meaning greater in terms of sorting.
 void postProcessBeanFactory(ConfigurableListableBeanFactory beanFactory)
          Modify the application context's internal bean factory after its standard initialization.
protected abstract  void processProperties(ConfigurableListableBeanFactory beanFactory, Properties props)
          Apply the given Properties to the bean factory.
 void setFileEncoding(String encoding)
          Set the encoding to use for parsing properties files.
 void setIgnoreResourceNotFound(boolean ignoreResourceNotFound)
          Set if failure to find the property resource should be ignored.
 void setLocation(Resource location)
          Set a location of a properties file to be loaded.
 void setLocations(Resource[] locations)
          Set locations of properties files to be loaded.
 void setOrder(int order)
           
 void setProperties(Properties properties)
          Set local properties, e.g. via the "props" tag in XML bean definitions.
 void setPropertiesPersister(PropertiesPersister propertiesPersister)
          Set the PropertiesPersister to use for parsing properties files.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

logger

protected final Log logger
Constructor Detail

PropertyResourceConfigurer

public PropertyResourceConfigurer()
Method Detail

setOrder

public void setOrder(int order)

getOrder

public int getOrder()
Description copied from interface: Ordered
Return the order value of this object, higher value meaning greater in terms of sorting. Normally starting with 0 or 1, Integer.MAX_VALUE indicating greatest. Same order values will result in arbitrary positions for the affected objects.

Higher value can be interpreted as lower priority, consequently the first object has highest priority (somewhat analogous to Servlet "load-on-startup" values).

Specified by:
getOrder in interface Ordered
Returns:
the order value

setProperties

public void setProperties(Properties properties)
Set local properties, e.g. via the "props" tag in XML bean definitions. These can be considered defaults, to be overridden by properties loaded from files.

See Also:
setLocation(org.springframework.core.io.Resource), setLocations(org.springframework.core.io.Resource[])

setLocation

public void setLocation(Resource location)
Set a location of a properties file to be loaded.

See Also:
setLocations(org.springframework.core.io.Resource[])

setLocations

public void setLocations(Resource[] locations)
Set locations of properties files to be loaded.

See Also:
setLocation(org.springframework.core.io.Resource)

setFileEncoding

public void setFileEncoding(String encoding)
Set the encoding to use for parsing properties files. Default is none, using java.util.Properties' default encoding.

See Also:
PropertiesPersister.load(java.util.Properties, java.io.InputStream)

setPropertiesPersister

public void setPropertiesPersister(PropertiesPersister propertiesPersister)
Set the PropertiesPersister to use for parsing properties files. The default is DefaultPropertiesPersister.

See Also:
DefaultPropertiesPersister

setIgnoreResourceNotFound

public void setIgnoreResourceNotFound(boolean ignoreResourceNotFound)
Set if failure to find the property resource should be ignored. True is appropriate if the properties file is completely optional. Default is false.


postProcessBeanFactory

public void postProcessBeanFactory(ConfigurableListableBeanFactory beanFactory)
                            throws BeansException
Description copied from interface: BeanFactoryPostProcessor
Modify the application context's internal bean factory after its standard initialization. All bean definitions will have been loaded, but no beans will have been instantiated yet. This allows for overriding or adding properties even to eager-initializing beans.

Specified by:
postProcessBeanFactory in interface BeanFactoryPostProcessor
Parameters:
beanFactory - the bean factory used by the application context
Throws:
BeansException - 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.

Default implementation will invoke convertPropertyValue for each property value, replacing the original with the converted value.

See Also:
convertPropertyValue(java.lang.String), processProperties(org.springframework.beans.factory.config.ConfigurableListableBeanFactory, java.util.Properties)

convertPropertyValue

protected String convertPropertyValue(String originalValue)
Convert the given property value from the properties source to the value that should be applied.

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:
setProperties(java.util.Properties), setLocations(org.springframework.core.io.Resource[]), setLocation(org.springframework.core.io.Resource)

processProperties

protected abstract void processProperties(ConfigurableListableBeanFactory beanFactory,
                                          Properties props)
                                   throws BeansException
Apply the given Properties to the bean factory.

Parameters:
beanFactory - the bean factory used by the application context
props - the Properties to apply
Throws:
BeansException - in case of errors


Copyright (C) 2003-2004 The Spring Framework Project.