Class BeanDefinitionReaderUtils
java.lang.Object
org.springframework.beans.factory.support.BeanDefinitionReaderUtils
Utility methods that are useful for bean definition reader implementations.
Mainly intended for internal use.
- Since:
- 1.1
- Author:
- Juergen Hoeller, Rob Harrop
- See Also:
-
Field Summary
Fields -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionstatic AbstractBeanDefinitioncreateBeanDefinition(String parentName, String className, ClassLoader classLoader) Create a new GenericBeanDefinition for the given parent name and class name, eagerly loading the bean class if a ClassLoader has been specified.static StringgenerateBeanName(BeanDefinition beanDefinition, BeanDefinitionRegistry registry) Generate a bean name for the given top-level bean definition, unique within the given bean factory.static StringgenerateBeanName(BeanDefinition definition, BeanDefinitionRegistry registry, boolean isInnerBean) Generate a bean name for the given bean definition, unique within the given bean factory.static voidregisterBeanDefinition(BeanDefinitionHolder definitionHolder, BeanDefinitionRegistry registry) Register the given bean definition with the given bean factory.static StringregisterWithGeneratedName(AbstractBeanDefinition definition, BeanDefinitionRegistry registry) Register the given bean definition with a generated name, unique within the given bean factory.static StringuniqueBeanName(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.
-
Field Details
-
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.- See Also:
-
-
Constructor Details
-
BeanDefinitionReaderUtils
public BeanDefinitionReaderUtils()
-
-
Method Details
-
createBeanDefinition
public static AbstractBeanDefinition createBeanDefinition(@Nullable String parentName, @Nullable String className, @Nullable 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- the name of the parent bean, if anyclassName- the name of the bean class, if anyclassLoader- the ClassLoader to use for loading bean classes (can benullto just register bean classes by name)- Returns:
- the bean definition
- Throws:
ClassNotFoundException- if the bean class could not be loaded
-
generateBeanName
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- the bean definition to generate a bean name forregistry- the bean factory that the definition is going to be registered with (to check for existing bean names)- Returns:
- the generated bean name
- Throws:
BeanDefinitionStoreException- if no unique name can be generated for the given bean definition- See Also:
-
generateBeanName
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- the bean definition to generate a bean name forregistry- the bean factory that the definition is going to be registered with (to check for existing bean names)isInnerBean- 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:
- the generated bean name
- Throws:
BeanDefinitionStoreException- if no unique name can be generated for the given bean definition
-
uniqueBeanName
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- the original bean nameregistry- the bean factory that the definition is going to be registered with (to check for existing bean names)- Returns:
- the unique bean name to use
- Since:
- 5.1
-
registerBeanDefinition
public static void registerBeanDefinition(BeanDefinitionHolder definitionHolder, BeanDefinitionRegistry registry) throws BeanDefinitionStoreException Register the given bean definition with the given bean factory.- Parameters:
definitionHolder- the bean definition including name and aliasesregistry- the bean factory to register with- Throws:
BeanDefinitionStoreException- if registration failed
-
registerWithGeneratedName
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- the bean definition to generate a bean name forregistry- the bean factory to register with- Returns:
- the generated bean name
- Throws:
BeanDefinitionStoreException- if no unique name can be generated for the given bean definition or the definition cannot be registered
-