org.springframework.beans.factory.support

Class BeanDefinitionReaderUtils

  • java.lang.Object
    • org.springframework.beans.factory.support.BeanDefinitionReaderUtils
    • Field Detail

      • GENERATED_BEAN_NAME_SEPARATOR

        public static final java.lang.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.
        See Also:
        Constant Field Values
    • Constructor Detail

      • BeanDefinitionReaderUtils

        public BeanDefinitionReaderUtils()
    • Method Detail

      • createBeanDefinition

        public static AbstractBeanDefinition createBeanDefinition(@Nullable
                                                                  java.lang.String parentName,
                                                                  @Nullable
                                                                  java.lang.String className,
                                                                  @Nullable
                                                                  java.lang.ClassLoader classLoader)
                                                           throws java.lang.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 any
        className - the name of the bean class, if any
        classLoader - the ClassLoader to use for loading bean classes (can be null to just register bean classes by name)
        Returns:
        the bean definition
        Throws:
        java.lang.ClassNotFoundException - if the bean class could not be loaded
      • generateBeanName

        public static java.lang.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 for
        registry - 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

        public static java.lang.String uniqueBeanName(java.lang.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 - the original bean name
        registry - 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
      • registerWithGeneratedName

        public static java.lang.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 for
        registry - 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