Class AnnotatedBeanDefinitionReader

java.lang.Object
org.springframework.context.annotation.AnnotatedBeanDefinitionReader

public class AnnotatedBeanDefinitionReader extends Object
Convenient adapter for programmatic registration of bean classes.

This is an alternative to ClassPathBeanDefinitionScanner, applying the same resolution of annotations but for explicitly registered classes only.

Since:
3.0
Author:
Juergen Hoeller, Chris Beams, Sam Brannen, Phillip Webb
See Also:
  • Constructor Summary

    Constructors
    Constructor
    Description
    AnnotatedBeanDefinitionReader(org.springframework.beans.factory.support.BeanDefinitionRegistry registry)
    Create a new AnnotatedBeanDefinitionReader for the given registry.
    AnnotatedBeanDefinitionReader(org.springframework.beans.factory.support.BeanDefinitionRegistry registry, org.springframework.core.env.Environment environment)
    Create a new AnnotatedBeanDefinitionReader for the given registry, using the given Environment.
  • Method Summary

    Modifier and Type
    Method
    Description
    final org.springframework.beans.factory.support.BeanDefinitionRegistry
    Get the BeanDefinitionRegistry that this reader operates on.
    void
    register(Class<?>... componentClasses)
    Register one or more component classes to be processed.
    void
    registerBean(Class<?> beanClass)
    Register a bean from the given bean class, deriving its metadata from class-declared annotations.
    void
    registerBean(Class<?> beanClass, Class<? extends Annotation>... qualifiers)
    Register a bean from the given bean class, deriving its metadata from class-declared annotations.
    void
    registerBean(Class<?> beanClass, String name)
    Register a bean from the given bean class, deriving its metadata from class-declared annotations.
    void
    registerBean(Class<?> beanClass, String name, Class<? extends Annotation>... qualifiers)
    Register a bean from the given bean class, deriving its metadata from class-declared annotations.
    <T> void
    registerBean(Class<T> beanClass, String name, Supplier<T> supplier)
    Register a bean from the given bean class, deriving its metadata from class-declared annotations, using the given supplier for obtaining a new instance (possibly declared as a lambda expression or method reference).
    <T> void
    registerBean(Class<T> beanClass, String name, Supplier<T> supplier, org.springframework.beans.factory.config.BeanDefinitionCustomizer... customizers)
    Register a bean from the given bean class, deriving its metadata from class-declared annotations.
    <T> void
    registerBean(Class<T> beanClass, Supplier<T> supplier)
    Register a bean from the given bean class, deriving its metadata from class-declared annotations, using the given supplier for obtaining a new instance (possibly declared as a lambda expression or method reference).
    void
    setBeanNameGenerator(org.springframework.beans.factory.support.BeanNameGenerator beanNameGenerator)
    Set the BeanNameGenerator to use for detected bean classes.
    void
    setEnvironment(org.springframework.core.env.Environment environment)
    Set the Environment to use when evaluating whether @Conditional-annotated component classes should be registered.
    void
    Set the ScopeMetadataResolver to use for registered component classes.

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Constructor Details

    • AnnotatedBeanDefinitionReader

      public AnnotatedBeanDefinitionReader(org.springframework.beans.factory.support.BeanDefinitionRegistry registry)
      Create a new AnnotatedBeanDefinitionReader for the given registry.

      If the registry is EnvironmentCapable, e.g. is an ApplicationContext, the Environment will be inherited, otherwise a new StandardEnvironment will be created and used.

      Parameters:
      registry - the BeanFactory to load bean definitions into, in the form of a BeanDefinitionRegistry
      See Also:
    • AnnotatedBeanDefinitionReader

      public AnnotatedBeanDefinitionReader(org.springframework.beans.factory.support.BeanDefinitionRegistry registry, org.springframework.core.env.Environment environment)
      Create a new AnnotatedBeanDefinitionReader for the given registry, using the given Environment.
      Parameters:
      registry - the BeanFactory to load bean definitions into, in the form of a BeanDefinitionRegistry
      environment - the Environment to use when evaluating bean definition profiles.
      Since:
      3.1
  • Method Details

    • getRegistry

      public final org.springframework.beans.factory.support.BeanDefinitionRegistry getRegistry()
      Get the BeanDefinitionRegistry that this reader operates on.
    • setEnvironment

      public void setEnvironment(org.springframework.core.env.Environment environment)
      Set the Environment to use when evaluating whether @Conditional-annotated component classes should be registered.

      The default is a StandardEnvironment.

      See Also:
    • setBeanNameGenerator

      public void setBeanNameGenerator(@Nullable org.springframework.beans.factory.support.BeanNameGenerator beanNameGenerator)
      Set the BeanNameGenerator to use for detected bean classes.

      The default is a AnnotationBeanNameGenerator.

    • setScopeMetadataResolver

      public void setScopeMetadataResolver(@Nullable ScopeMetadataResolver scopeMetadataResolver)
      Set the ScopeMetadataResolver to use for registered component classes.

      The default is an AnnotationScopeMetadataResolver.

    • register

      public void register(Class<?>... componentClasses)
      Register one or more component classes to be processed.

      Calls to register are idempotent; adding the same component class more than once has no additional effect.

      Parameters:
      componentClasses - one or more component classes, e.g. @Configuration classes
    • registerBean

      public void registerBean(Class<?> beanClass)
      Register a bean from the given bean class, deriving its metadata from class-declared annotations.
      Parameters:
      beanClass - the class of the bean
    • registerBean

      public void registerBean(Class<?> beanClass, @Nullable String name)
      Register a bean from the given bean class, deriving its metadata from class-declared annotations.
      Parameters:
      beanClass - the class of the bean
      name - an explicit name for the bean (or null for generating a default bean name)
      Since:
      5.2
    • registerBean

      public void registerBean(Class<?> beanClass, Class<? extends Annotation>... qualifiers)
      Register a bean from the given bean class, deriving its metadata from class-declared annotations.
      Parameters:
      beanClass - the class of the bean
      qualifiers - specific qualifier annotations to consider, in addition to qualifiers at the bean class level
    • registerBean

      public void registerBean(Class<?> beanClass, @Nullable String name, Class<? extends Annotation>... qualifiers)
      Register a bean from the given bean class, deriving its metadata from class-declared annotations.
      Parameters:
      beanClass - the class of the bean
      name - an explicit name for the bean (or null for generating a default bean name)
      qualifiers - specific qualifier annotations to consider, in addition to qualifiers at the bean class level
    • registerBean

      public <T> void registerBean(Class<T> beanClass, @Nullable Supplier<T> supplier)
      Register a bean from the given bean class, deriving its metadata from class-declared annotations, using the given supplier for obtaining a new instance (possibly declared as a lambda expression or method reference).
      Parameters:
      beanClass - the class of the bean
      supplier - a callback for creating an instance of the bean (may be null)
      Since:
      5.0
    • registerBean

      public <T> void registerBean(Class<T> beanClass, @Nullable String name, @Nullable Supplier<T> supplier)
      Register a bean from the given bean class, deriving its metadata from class-declared annotations, using the given supplier for obtaining a new instance (possibly declared as a lambda expression or method reference).
      Parameters:
      beanClass - the class of the bean
      name - an explicit name for the bean (or null for generating a default bean name)
      supplier - a callback for creating an instance of the bean (may be null)
      Since:
      5.0
    • registerBean

      public <T> void registerBean(Class<T> beanClass, @Nullable String name, @Nullable Supplier<T> supplier, org.springframework.beans.factory.config.BeanDefinitionCustomizer... customizers)
      Register a bean from the given bean class, deriving its metadata from class-declared annotations.
      Parameters:
      beanClass - the class of the bean
      name - an explicit name for the bean (or null for generating a default bean name)
      supplier - a callback for creating an instance of the bean (may be null)
      customizers - one or more callbacks for customizing the factory's BeanDefinition, e.g. setting a lazy-init or primary flag
      Since:
      5.2