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:
AnnotationConfigApplicationContext.register(java.lang.Class<?>...)
Constructor Summary
Constructors Constructor Description AnnotatedBeanDefinitionReader(BeanDefinitionRegistry registry)Create a newAnnotatedBeanDefinitionReaderfor the given registry.AnnotatedBeanDefinitionReader(BeanDefinitionRegistry registry, Environment environment)Create a newAnnotatedBeanDefinitionReaderfor the given registry, using the givenEnvironment.
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description BeanDefinitionRegistrygetRegistry()Get the BeanDefinitionRegistry that this reader operates on.voidregister(Class<?>... componentClasses)Register one or more component classes to be processed.voidregisterBean(Class<?> beanClass)Register a bean from the given bean class, deriving its metadata from class-declared annotations.voidregisterBean(Class<?> beanClass, Class<? extends Annotation>... qualifiers)Register a bean from the given bean class, deriving its metadata from class-declared annotations.voidregisterBean(Class<?> beanClass, String name)Register a bean from the given bean class, deriving its metadata from class-declared annotations.voidregisterBean(Class<?> beanClass, String name, Class<? extends Annotation>... qualifiers)Register a bean from the given bean class, deriving its metadata from class-declared annotations.<T> voidregisterBean(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> voidregisterBean(Class<T> beanClass, String name, Supplier<T> supplier, BeanDefinitionCustomizer... customizers)Register a bean from the given bean class, deriving its metadata from class-declared annotations.<T> voidregisterBean(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).voidsetBeanNameGenerator(BeanNameGenerator beanNameGenerator)Set theBeanNameGeneratorto use for detected bean classes.voidsetEnvironment(Environment environment)Set theEnvironmentto use when evaluating whether@Conditional-annotated component classes should be registered.voidsetScopeMetadataResolver(ScopeMetadataResolver scopeMetadataResolver)Set theScopeMetadataResolverto use for registered component classes.
Constructor Detail
AnnotatedBeanDefinitionReader
public AnnotatedBeanDefinitionReader(BeanDefinitionRegistry registry)
Create a newAnnotatedBeanDefinitionReaderfor the given registry.If the registry is
EnvironmentCapable, e.g. is anApplicationContext, theEnvironmentwill be inherited, otherwise a newStandardEnvironmentwill be created and used.- Parameters:
registry- theBeanFactoryto load bean definitions into, in the form of aBeanDefinitionRegistry- See Also:
AnnotatedBeanDefinitionReader(BeanDefinitionRegistry, Environment),setEnvironment(Environment)
AnnotatedBeanDefinitionReader
public AnnotatedBeanDefinitionReader(BeanDefinitionRegistry registry, Environment environment)
Create a newAnnotatedBeanDefinitionReaderfor the given registry, using the givenEnvironment.- Parameters:
registry- theBeanFactoryto load bean definitions into, in the form of aBeanDefinitionRegistryenvironment- theEnvironmentto use when evaluating bean definition profiles.- Since:
- 3.1
Method Detail
getRegistry
public final BeanDefinitionRegistry getRegistry()
Get the BeanDefinitionRegistry that this reader operates on.
setEnvironment
public void setEnvironment(Environment environment)
Set theEnvironmentto use when evaluating whether@Conditional-annotated component classes should be registered.The default is a
StandardEnvironment.
setBeanNameGenerator
public void setBeanNameGenerator(@Nullable BeanNameGenerator beanNameGenerator)
Set theBeanNameGeneratorto use for detected bean classes.The default is a
AnnotationBeanNameGenerator.
setScopeMetadataResolver
public void setScopeMetadataResolver(@Nullable ScopeMetadataResolver scopeMetadataResolver)
Set theScopeMetadataResolverto 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
registerare idempotent; adding the same component class more than once has no additional effect.- Parameters:
componentClasses- one or more component classes, e.g.@Configurationclasses
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 beanname- an explicit name for the bean (ornullfor 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 beanqualifiers- 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 beanname- an explicit name for the bean (ornullfor 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 beansupplier- a callback for creating an instance of the bean (may benull)- 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 beanname- an explicit name for the bean (ornullfor generating a default bean name)supplier- a callback for creating an instance of the bean (may benull)- 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 beanname- an explicit name for the bean (ornullfor generating a default bean name)supplier- a callback for creating an instance of the bean (may benull)customizers- one or more callbacks for customizing the factory'sBeanDefinition, e.g. setting a lazy-init or primary flag- Since:
- 5.2