public class PropertiesBeanDefinitionReader extends AbstractBeanDefinitionReader
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
DefaultListableBeanFactory
Modifier and Type | Field and Description |
---|---|
static String |
ABSTRACT_KEY
Special key to distinguish
owner.(abstract)=true
Default is "false". |
static String |
CLASS_KEY
Special key to distinguish
owner.(class)=com.myapp.MyClass - |
static String |
CONSTRUCTOR_ARG_PREFIX
Prefix used to denote a constructor argument definition.
|
static String |
LAZY_INIT_KEY
Special key to distinguish
owner.(lazy-init)=true
Default is "false". |
static String |
PARENT_KEY
Special key to distinguish
owner.(parent)=parentBeanName . |
static String |
REF_PREFIX
Prefix before values referencing other beans.
|
static String |
REF_SUFFIX
Property suffix for references to other beans in the current
BeanFactory: e.g.
|
static String |
SCOPE_KEY
Special key to distinguish
owner.(scope)=prototype . |
static String |
SEPARATOR
Separator between bean name and property name.
|
static String |
SINGLETON_KEY
Special key to distinguish
owner.(singleton)=false . |
static String |
TRUE_VALUE
Value of a T/F attribute that represents true.
|
logger
Constructor and Description |
---|
PropertiesBeanDefinitionReader(BeanDefinitionRegistry registry)
Create new PropertiesBeanDefinitionReader for the given bean factory.
|
Modifier and Type | Method and Description |
---|---|
String |
getDefaultParentBean()
Return the default parent bean for this bean factory.
|
PropertiesPersister |
getPropertiesPersister()
Return the PropertiesPersister to use for parsing properties files.
|
int |
loadBeanDefinitions(EncodedResource encodedResource)
Load bean definitions from the specified properties file.
|
int |
loadBeanDefinitions(EncodedResource encodedResource,
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(Resource resource,
String prefix)
Load bean definitions from the specified properties file.
|
protected 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
|
int |
registerBeanDefinitions(Map map)
Register bean definitions contained in a Map,
using all property keys (i.e.
|
int |
registerBeanDefinitions(Map map,
String prefix)
Register bean definitions contained in a Map.
|
int |
registerBeanDefinitions(Map map,
String prefix,
String resourceDescription)
Register bean definitions contained in a Map.
|
int |
registerBeanDefinitions(ResourceBundle rb)
Register bean definitions contained in a resource bundle,
using all property keys (i.e.
|
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.
|
getBeanClassLoader, getBeanFactory, getBeanNameGenerator, getEnvironment, getRegistry, getResourceLoader, loadBeanDefinitions, loadBeanDefinitions, loadBeanDefinitions, loadBeanDefinitions, setBeanClassLoader, setBeanNameGenerator, setEnvironment, setResourceLoader
public static final String TRUE_VALUE
public static final String SEPARATOR
public static final String CLASS_KEY
owner.(class)=com.myapp.MyClass
-public static final String PARENT_KEY
owner.(parent)=parentBeanName
.public static final String SCOPE_KEY
owner.(scope)=prototype
.
Default is "true".public static final String SINGLETON_KEY
owner.(singleton)=false
.
Default is "true".public static final String ABSTRACT_KEY
owner.(abstract)=true
Default is "false".public static final String LAZY_INIT_KEY
owner.(lazy-init)=true
Default is "false".public static final String REF_SUFFIX
owner.dog(ref)=fido
.
Whether this is a reference to a singleton or a prototype
will depend on the definition of the target bean.public static final String REF_PREFIX
public static final String CONSTRUCTOR_ARG_PREFIX
public PropertiesBeanDefinitionReader(BeanDefinitionRegistry registry)
registry
- the BeanFactory to load bean definitions into,
in the form of a BeanDefinitionRegistrypublic void setDefaultParentBean(String defaultParentBean)
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 compatibility reasons. It still matches the typical use case.
public String getDefaultParentBean()
public void setPropertiesPersister(PropertiesPersister propertiesPersister)
DefaultPropertiesPersister
public PropertiesPersister getPropertiesPersister()
public int loadBeanDefinitions(Resource resource) throws BeanDefinitionStoreException
resource
- the resource descriptor for the properties fileBeanDefinitionStoreException
- in case of loading or parsing errorsloadBeanDefinitions(org.springframework.core.io.Resource, String)
public int loadBeanDefinitions(Resource resource, String prefix) throws BeanDefinitionStoreException
resource
- the resource descriptor for the properties fileprefix
- a filter within the keys in the map: e.g. 'beans.'
(can be empty or null
)BeanDefinitionStoreException
- in case of loading or parsing errorspublic int loadBeanDefinitions(EncodedResource encodedResource) throws BeanDefinitionStoreException
encodedResource
- the resource descriptor for the properties file,
allowing to specify an encoding to use for parsing the fileBeanDefinitionStoreException
- in case of loading or parsing errorspublic int loadBeanDefinitions(EncodedResource encodedResource, String prefix) throws BeanDefinitionStoreException
encodedResource
- the resource descriptor for the properties file,
allowing to specify an encoding to use for parsing the fileprefix
- a filter within the keys in the map: e.g. 'beans.'
(can be empty or null
)BeanDefinitionStoreException
- in case of loading or parsing errorspublic int registerBeanDefinitions(ResourceBundle rb) throws BeanDefinitionStoreException
rb
- the ResourceBundle to load fromBeanDefinitionStoreException
- in case of loading or parsing errorsregisterBeanDefinitions(java.util.ResourceBundle, String)
public int registerBeanDefinitions(ResourceBundle rb, String prefix) throws BeanDefinitionStoreException
Similar syntax as for a Map. This method is useful to enable standard Java internationalization support.
rb
- the ResourceBundle to load fromprefix
- a filter within the keys in the map: e.g. 'beans.'
(can be empty or null
)BeanDefinitionStoreException
- in case of loading or parsing errorspublic int registerBeanDefinitions(Map map) throws BeansException
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.BeansException
- in case of loading or parsing errorsregisterBeanDefinitions(java.util.Map, String, String)
public int registerBeanDefinitions(Map map, String prefix) throws BeansException
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
)BeansException
- in case of loading or parsing errorspublic int registerBeanDefinitions(Map map, String prefix, String resourceDescription) throws BeansException
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)BeansException
- in case of loading or parsing errorsregisterBeanDefinitions(Map, String)
protected void registerBeanDefinition(String beanName, Map<?,?> map, String prefix, String resourceDescription) throws BeansException
beanName
- name of the bean to definemap
- Map containing string pairsprefix
- prefix of each entry, which will be strippedresourceDescription
- description of the resource that the
Map came from (for logging purposes)BeansException
- if the bean definition could not be parsed or registered