Top Description Fields Constructors Methods
org.springframework.beans.factory.support

public abstract Class BeanDefinitionReaderUtils

extends Object
Class Inheritance
Imports
org.springframework.beans.factory.BeanDefinitionStoreException, .BeanFactoryUtils, org.springframework.beans.factory.config.BeanDefinition, .BeanDefinitionHolder, org.springframework.lang.Nullable, org.springframework.util.ClassUtils, .ObjectUtils, .StringUtils

Utility methods that are useful for bean definition reader implementations. Mainly intended for internal use.
Authors
Juergen Hoeller, Rob Harrop
Since
1.1
See Also
PropertiesBeanDefinitionReader, org.springframework.beans.factory.xml.DefaultBeanDefinitionDocumentReader

Field Summary

Modifier and TypeField and Description
public static final String
GENERATED_BEAN_NAME_SEPARATOR

Separator for generated bean names.

Constructor Summary

AccessConstructor and Description
public

Method Summary

Modifier and TypeMethod and Description
public static AbstractBeanDefinition

Returns:

the bean definition
createBeanDefinition
(String
the name of the parent bean, if any
parentName
,
String
the name of the bean class, if any
className
,
ClassLoader
the ClassLoader to use for loading bean classes (can be null to just register bean classes by name)
classLoader
)

Create a new GenericBeanDefinition for the given parent name and class name, eagerly loading the bean class if a ClassLoader has been specified.

public static String

Returns:

the generated bean name
generateBeanName
(BeanDefinition
the bean definition to generate a bean name for
beanDefinition
,
BeanDefinitionRegistry
the bean factory that the definition is going to be registered with (to check for existing bean names)
registry
)

Generate a bean name for the given top-level bean definition, unique within the given bean factory.

public static String

Returns:

the generated bean name
generateBeanName
(BeanDefinition
the bean definition to generate a bean name for
definition
,
BeanDefinitionRegistry
the bean factory that the definition is going to be registered with (to check for existing bean names)
registry
,
boolean
whether the given bean definition will be registered as inner bean or as top-level bean (allowing for special name generation for inner beans versus top-level beans)
isInnerBean
)

Generate a bean name for the given bean definition, unique within the given bean factory.

public static void
registerBeanDefinition(BeanDefinitionHolder
the bean definition including name and aliases
definitionHolder
,
BeanDefinitionRegistry
the bean factory to register with
registry
)

Register the given bean definition with the given bean factory.

public static String

Returns:

the generated bean name
registerWithGeneratedName
(AbstractBeanDefinition
the bean definition to generate a bean name for
definition
,
BeanDefinitionRegistry
the bean factory to register with
registry
)

Register the given bean definition with a generated name, unique within the given bean factory.

public static String

Returns:

the unique bean name to use
uniqueBeanName
(String
the original bean name
beanName
,
BeanDefinitionRegistry
the bean factory that the definition is going to be registered with (to check for existing bean names)
registry
)

Turn the given bean name into a unique bean name for the given bean factory, appending a unique counter as suffix if necessary.

Inherited from java.lang.Object:
cloneequalsfinalizegetClasshashCodenotifynotifyAlltoStringwaitwaitwait

Field Detail

GENERATED_BEAN_NAME_SEPARATORback to summary
public static final String GENERATED_BEAN_NAME_SEPARATOR

Separator for generated bean names. If a class name or parent name is not unique, "#1", "#2" etc will be appended, until the name becomes unique.

Constructor Detail

BeanDefinitionReaderUtilsback to summary
public BeanDefinitionReaderUtils()

Method Detail

createBeanDefinitionback to summary
public static AbstractBeanDefinition createBeanDefinition(String parentName, String className, ClassLoader classLoader) throws ClassNotFoundException

Create a new GenericBeanDefinition for the given parent name and class name, eagerly loading the bean class if a ClassLoader has been specified.

Parameters
parentName:String

the name of the parent bean, if any

className:String

the name of the bean class, if any

classLoader:ClassLoader

the ClassLoader to use for loading bean classes (can be null to just register bean classes by name)

Returns:AbstractBeanDefinition

the bean definition

Exceptions
ClassNotFoundException:
if the bean class could not be loaded
generateBeanNameback to summary
public static String generateBeanName(BeanDefinition beanDefinition, BeanDefinitionRegistry registry) throws BeanDefinitionStoreException

Generate a bean name for the given top-level bean definition, unique within the given bean factory.

Parameters
beanDefinition:BeanDefinition

the bean definition to generate a bean name for

registry:BeanDefinitionRegistry

the bean factory that the definition is going to be registered with (to check for existing bean names)

Returns:String

the generated bean name

Exceptions
BeanDefinitionStoreException:
if no unique name can be generated for the given bean definition
See Also
generateBeanName(BeanDefinition, BeanDefinitionRegistry, boolean)
generateBeanNameback to summary
public static String generateBeanName(BeanDefinition definition, BeanDefinitionRegistry registry, boolean isInnerBean) throws BeanDefinitionStoreException

Generate a bean name for the given bean definition, unique within the given bean factory.

Parameters
definition:BeanDefinition

the bean definition to generate a bean name for

registry:BeanDefinitionRegistry

the bean factory that the definition is going to be registered with (to check for existing bean names)

isInnerBean:boolean

whether the given bean definition will be registered as inner bean or as top-level bean (allowing for special name generation for inner beans versus top-level beans)

Returns:String

the generated bean name

Exceptions
BeanDefinitionStoreException:
if no unique name can be generated for the given bean definition
registerBeanDefinitionback to summary
public static void registerBeanDefinition(BeanDefinitionHolder definitionHolder, BeanDefinitionRegistry registry) throws BeanDefinitionStoreException

Register the given bean definition with the given bean factory.

Parameters
definitionHolder:BeanDefinitionHolder

the bean definition including name and aliases

registry:BeanDefinitionRegistry

the bean factory to register with

Exceptions
BeanDefinitionStoreException:
if registration failed
registerWithGeneratedNameback to summary
public static String registerWithGeneratedName(AbstractBeanDefinition definition, BeanDefinitionRegistry registry) throws BeanDefinitionStoreException

Register the given bean definition with a generated name, unique within the given bean factory.

Parameters
definition:AbstractBeanDefinition

the bean definition to generate a bean name for

registry:BeanDefinitionRegistry

the bean factory to register with

Returns:String

the generated bean name

Exceptions
BeanDefinitionStoreException:
if no unique name can be generated for the given bean definition or the definition cannot be registered
uniqueBeanNameback to summary
public static String uniqueBeanName(String beanName, BeanDefinitionRegistry registry)

Turn the given bean name into a unique bean name for the given bean factory, appending a unique counter as suffix if necessary.

Parameters
beanName:String

the original bean name

registry:BeanDefinitionRegistry

the bean factory that the definition is going to be registered with (to check for existing bean names)

Returns:String

the unique bean name to use

Since
5.1