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, Yanming Zhou
See Also:
  • Constructor Details

  • Method Details

    • getRegistry

      public final BeanDefinitionRegistry getRegistry()
      Get the BeanDefinitionRegistry that this reader operates on.
    • setEnvironment

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

      The default is a StandardEnvironment.

    • setBeanNameGenerator

      public void setBeanNameGenerator(@Nullable 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, for example, @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, 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, for example, setting a lazy-init or primary flag
      Since:
      5.2