public class

PropertiesBeanDefinitionReader

extends AbstractBeanDefinitionReader
java.lang.Object
   ↳ org.springframework.beans.factory.support.AbstractBeanDefinitionReader
     ↳ org.springframework.beans.factory.support.PropertiesBeanDefinitionReader

Class Overview

Bean definition reader for a simple properties format.

Provides bean definition registration methods for Map/Properties and ResourceBundle. Typically applied to a DefaultListableBeanFactory.

Example:

 employee.(class)=MyClass       // bean is of class MyClass
 employee.(abstract)=true       // this bean can't be instantiated directly
 employee.group=Insurance       // real property
 employee.usesDialUp=false      // real property (potentially overridden)

 salesrep.(parent)=employee     // derives from "employee" bean definition
 salesrep.(lazy-init)=true      // lazily initialize this singleton bean
 salesrep.manager(ref)=tony     // reference to another bean
 salesrep.department=Sales      // real property

 techie.(parent)=employee       // derives from "employee" bean definition
 techie.(scope)=prototype       // bean is a prototype (not a shared instance)
 techie.manager(ref)=jeff       // reference to another bean
 techie.department=Engineering  // real property
 techie.usesDialUp=true         // real property (overriding parent value)

 ceo.$0(ref)=secretary          // inject 'secretary' bean as 0th constructor arg
 ceo.$1=1000000                 // inject value '1000000' at 1st constructor arg
 

Summary

Constants
String ABSTRACT_KEY Special key to distinguish owner.(abstract)=true Default is "false".
String CLASS_KEY Special key to distinguish owner.(class)=com.myapp.MyClass-
String CONSTRUCTOR_ARG_PREFIX Prefix used to denote a constructor argument definition.
String LAZY_INIT_KEY Special key to distinguish owner.(lazy-init)=true Default is "false".
String PARENT_KEY Special key to distinguish owner.(parent)=parentBeanName.
String REF_PREFIX Prefix before values referencing other beans.
String REF_SUFFIX Property suffix for references to other beans in the current BeanFactory: e.g.
String SCOPE_KEY Special key to distinguish owner.(scope)=prototype.
String SEPARATOR Separator between bean name and property name.
String SINGLETON_KEY Special key to distinguish owner.(singleton)=false.
String TRUE_VALUE Value of a T/F attribute that represents true.
[Expand]
Inherited Fields
From class org.springframework.beans.factory.support.AbstractBeanDefinitionReader
Public Constructors
PropertiesBeanDefinitionReader(BeanDefinitionRegistry registry)
Create new PropertiesBeanDefinitionReader for the given bean factory.
Public Methods
String getDefaultParentBean()
Return the default parent bean for this bean factory.
PropertiesPersister getPropertiesPersister()
Return the PropertiesPersister to use for parsing properties files.
int loadBeanDefinitions(Resource resource, String prefix)
Load bean definitions from the specified properties file.
int loadBeanDefinitions(Resource resource)
Load bean definitions from the specified properties file, using all property keys (i.e.
int loadBeanDefinitions(EncodedResource encodedResource, String prefix)
Load bean definitions from the specified properties file.
int loadBeanDefinitions(EncodedResource encodedResource)
Load bean definitions from the specified properties file.
int registerBeanDefinitions(ResourceBundle rb)
Register bean definitions contained in a resource bundle, using all property keys (i.e.
int registerBeanDefinitions(Map map, String prefix)
Register bean definitions contained in a Map.
int registerBeanDefinitions(Map map)
Register bean definitions contained in a Map, using all property keys (i.e.
int registerBeanDefinitions(Map map, String prefix, String resourceDescription)
Register bean definitions contained in a Map.
int registerBeanDefinitions(ResourceBundle rb, String prefix)
Register bean definitions contained in a ResourceBundle.
void setDefaultParentBean(String defaultParentBean)
Set the default parent bean for this bean factory.
void setPropertiesPersister(PropertiesPersister propertiesPersister)
Set the PropertiesPersister to use for parsing properties files.
Protected Methods
void registerBeanDefinition(String beanName, Map<?, ?> map, String prefix, String resourceDescription)
Get all property values, given a prefix (which will be stripped) and add the bean they define to the factory with the given name
[Expand]
Inherited Methods
From class org.springframework.beans.factory.support.AbstractBeanDefinitionReader
From class java.lang.Object
From interface org.springframework.beans.factory.support.BeanDefinitionReader
From interface org.springframework.core.env.EnvironmentCapable

Constants

public static final String ABSTRACT_KEY

Also: SpringBeans

Special key to distinguish owner.(abstract)=true Default is "false".

Constant Value: "(abstract)"

public static final String CLASS_KEY

Also: SpringBeans

Special key to distinguish owner.(class)=com.myapp.MyClass-

Constant Value: "(class)"

public static final String CONSTRUCTOR_ARG_PREFIX

Also: SpringBeans

Prefix used to denote a constructor argument definition.

Constant Value: "$"

public static final String LAZY_INIT_KEY

Also: SpringBeans

Special key to distinguish owner.(lazy-init)=true Default is "false".

Constant Value: "(lazy-init)"

public static final String PARENT_KEY

Also: SpringBeans

Special key to distinguish owner.(parent)=parentBeanName.

Constant Value: "(parent)"

public static final String REF_PREFIX

Also: SpringBeans

Prefix before values referencing other beans.

Constant Value: "*"

public static final String REF_SUFFIX

Also: SpringBeans

Property suffix for references to other beans in the current BeanFactory: e.g. owner.dog(ref)=fido. Whether this is a reference to a singleton or a prototype will depend on the definition of the target bean.

Constant Value: "(ref)"

public static final String SCOPE_KEY

Also: SpringBeans

Special key to distinguish owner.(scope)=prototype. Default is "true".

Constant Value: "(scope)"

public static final String SEPARATOR

Also: SpringBeans

Separator between bean name and property name. We follow normal Java conventions.

Constant Value: "."

public static final String SINGLETON_KEY

Also: SpringBeans

Special key to distinguish owner.(singleton)=false. Default is "true".

Constant Value: "(singleton)"

public static final String TRUE_VALUE

Also: SpringBeans

Value of a T/F attribute that represents true. Anything else represents false. Case seNsItive.

Constant Value: "true"

Public Constructors

public PropertiesBeanDefinitionReader (BeanDefinitionRegistry registry)

Also: SpringBeans

Create new PropertiesBeanDefinitionReader for the given bean factory.

Parameters
registry the BeanFactory to load bean definitions into, in the form of a BeanDefinitionRegistry

Public Methods

public String getDefaultParentBean ()

Also: SpringBeans

Return the default parent bean for this bean factory.

public PropertiesPersister getPropertiesPersister ()

Also: SpringBeans

Return the PropertiesPersister to use for parsing properties files.

public int loadBeanDefinitions (Resource resource, String prefix)

Load bean definitions from the specified properties file.

Parameters
resource the resource descriptor for the properties file
prefix a filter within the keys in the map: e.g. 'beans.' (can be empty or null)
Returns
  • the number of bean definitions found
Throws
BeanDefinitionStoreException in case of loading or parsing errors

public int loadBeanDefinitions (Resource resource)

Load bean definitions from the specified properties file, using all property keys (i.e. not filtering by prefix).

Parameters
resource the resource descriptor for the properties file
Returns
  • the number of bean definitions found
Throws
BeanDefinitionStoreException in case of loading or parsing errors

public int loadBeanDefinitions (EncodedResource encodedResource, String prefix)

Load bean definitions from the specified properties file.

Parameters
encodedResource the resource descriptor for the properties file, allowing to specify an encoding to use for parsing the file
prefix a filter within the keys in the map: e.g. 'beans.' (can be empty or null)
Returns
  • the number of bean definitions found
Throws
BeanDefinitionStoreException in case of loading or parsing errors

public int loadBeanDefinitions (EncodedResource encodedResource)

Load bean definitions from the specified properties file.

Parameters
encodedResource the resource descriptor for the properties file, allowing to specify an encoding to use for parsing the file
Returns
  • the number of bean definitions found
Throws
BeanDefinitionStoreException in case of loading or parsing errors

public int registerBeanDefinitions (ResourceBundle rb)

Also: SpringBeans

Register bean definitions contained in a resource bundle, using all property keys (i.e. not filtering by prefix).

Parameters
rb the ResourceBundle to load from
Returns
  • the number of bean definitions found
Throws
BeanDefinitionStoreException in case of loading or parsing errors

public int registerBeanDefinitions (Map map, String prefix)

Also: SpringBeans

Register bean definitions contained in a Map. Ignore ineligible properties.

Parameters
map Map name -> property (String or Object). Property values will be strings if coming from a Properties file etc. Property names (keys) must be Strings. Class keys must be Strings.
prefix a filter within the keys in the map: e.g. 'beans.' (can be empty or null)
Returns
  • the number of bean definitions found
Throws
BeansException in case of loading or parsing errors

public int registerBeanDefinitions (Map map)

Also: SpringBeans

Register bean definitions contained in a Map, using all property keys (i.e. not filtering by prefix).

Parameters
map Map: name -> property (String or Object). Property values will be strings if coming from a Properties file etc. Property names (keys) must be Strings. Class keys must be Strings.
Returns
  • the number of bean definitions found
Throws
BeansException in case of loading or parsing errors

public int registerBeanDefinitions (Map map, String prefix, String resourceDescription)

Also: SpringBeans

Register bean definitions contained in a Map. Ignore ineligible properties.

Parameters
map Map name -> property (String or Object). Property values will be strings if coming from a Properties file etc. Property names (keys) must be strings. Class keys must be Strings.
prefix a filter within the keys in the map: e.g. 'beans.' (can be empty or null)
resourceDescription description of the resource that the Map came from (for logging purposes)
Returns
  • the number of bean definitions found
Throws
BeansException in case of loading or parsing errors

public int registerBeanDefinitions (ResourceBundle rb, String prefix)

Also: SpringBeans

Register bean definitions contained in a ResourceBundle.

Similar syntax as for a Map. This method is useful to enable standard Java internationalization support.

Parameters
rb the ResourceBundle to load from
prefix a filter within the keys in the map: e.g. 'beans.' (can be empty or null)
Returns
  • the number of bean definitions found
Throws
BeanDefinitionStoreException in case of loading or parsing errors

public void setDefaultParentBean (String defaultParentBean)

Also: SpringBeans

Set the default parent bean for this bean factory. If a child bean definition handled by this factory provides neither a parent nor a class attribute, this default value gets used.

Can be used e.g. for view definition files, to define a parent with a default view class and common attributes for all views. View definitions that define their own parent or carry their own class can still override this.

Strictly speaking, the rule that a default parent setting does not apply to a bean definition that carries a class is there for backwards compatiblity reasons. It still matches the typical use case.

public void setPropertiesPersister (PropertiesPersister propertiesPersister)

Set the PropertiesPersister to use for parsing properties files. The default is DefaultPropertiesPersister.

Protected Methods

protected void registerBeanDefinition (String beanName, Map<?, ?> map, String prefix, String resourceDescription)

Also: SpringBeans

Get all property values, given a prefix (which will be stripped) and add the bean they define to the factory with the given name

Parameters
beanName name of the bean to define
map Map containing string pairs
prefix prefix of each entry, which will be stripped
resourceDescription description of the resource that the Map came from (for logging purposes)
Throws
BeansException if the bean definition could not be parsed or registered