Class AnnotatedBeanDefinitionReader
java.lang.Object
org.springframework.context.annotation.AnnotatedBeanDefinitionReader
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 Summary
ConstructorsConstructorDescriptionCreate a newAnnotatedBeanDefinitionReaderfor the given registry.AnnotatedBeanDefinitionReader(BeanDefinitionRegistry registry, Environment environment) Create a newAnnotatedBeanDefinitionReaderfor the given registry, using the givenEnvironment. -
Method Summary
Modifier and TypeMethodDescriptionfinal BeanDefinitionRegistryGet the BeanDefinitionRegistry that this reader operates on.voidRegister 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, @Nullable String name) Register a bean from the given bean class, deriving its metadata from class-declared annotations.voidregisterBean(Class<?> beanClass, @Nullable String name, Class<? extends Annotation>... qualifiers) 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.<T> voidRegister 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, @Nullable String name, @Nullable 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, @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).voidsetBeanNameGenerator(@Nullable 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(@Nullable ScopeMetadataResolver scopeMetadataResolver) Set theScopeMetadataResolverto use for registered component classes.
-
Constructor Details
-
AnnotatedBeanDefinitionReader
Create a newAnnotatedBeanDefinitionReaderfor the given registry.If the registry is
EnvironmentCapable, for example, 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
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 Details
-
getRegistry
Get the BeanDefinitionRegistry that this reader operates on. -
setEnvironment
Set theEnvironmentto use when evaluating whether@Conditional-annotated component classes should be registered.The default is a
StandardEnvironment. -
setBeanNameGenerator
Set theBeanNameGeneratorto use for detected bean classes.The default is a
AnnotationBeanNameGenerator. -
setScopeMetadataResolver
Set theScopeMetadataResolverto use for registered component classes.The default is an
AnnotationScopeMetadataResolver. -
register
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, for example,@Configurationclasses
-
registerBean
Register a bean from the given bean class, deriving its metadata from class-declared annotations.- Parameters:
beanClass- the class of the bean
-
registerBean
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
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
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, for example, setting a lazy-init or primary flag- Since:
- 5.2
-