public class AnnotatedBeanDefinitionReader extends Object
This is an alternative to ClassPathBeanDefinitionScanner
, applying
the same resolution of annotations but for explicitly registered classes only.
AnnotationConfigApplicationContext.register(java.lang.Class<?>...)
Constructor and Description |
---|
AnnotatedBeanDefinitionReader(BeanDefinitionRegistry registry)
Create a new
AnnotatedBeanDefinitionReader for the given registry. |
AnnotatedBeanDefinitionReader(BeanDefinitionRegistry registry,
Environment environment)
Create a new
AnnotatedBeanDefinitionReader for the given registry,
using the given Environment . |
Modifier and Type | Method and Description |
---|---|
BeanDefinitionRegistry |
getRegistry()
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,
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> instanceSupplier)
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,
Supplier<T> instanceSupplier)
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(BeanNameGenerator beanNameGenerator)
Set the
BeanNameGenerator to use for detected bean classes. |
void |
setEnvironment(Environment environment)
Set the
Environment to use when evaluating whether
@Conditional -annotated component classes should be registered. |
void |
setScopeMetadataResolver(ScopeMetadataResolver scopeMetadataResolver)
Set the
ScopeMetadataResolver to use for registered component classes. |
public AnnotatedBeanDefinitionReader(BeanDefinitionRegistry registry)
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.
registry
- the BeanFactory
to load bean definitions into,
in the form of a BeanDefinitionRegistry
AnnotatedBeanDefinitionReader(BeanDefinitionRegistry, Environment)
,
setEnvironment(Environment)
public AnnotatedBeanDefinitionReader(BeanDefinitionRegistry registry, Environment environment)
AnnotatedBeanDefinitionReader
for the given registry,
using the given Environment
.registry
- the BeanFactory
to load bean definitions into,
in the form of a BeanDefinitionRegistry
environment
- the Environment
to use when evaluating bean definition
profiles.public final BeanDefinitionRegistry getRegistry()
public void setEnvironment(Environment environment)
Environment
to use when evaluating whether
@Conditional
-annotated component classes should be registered.
The default is a StandardEnvironment
.
registerBean(Class, String, Class...)
public void setBeanNameGenerator(@Nullable BeanNameGenerator beanNameGenerator)
BeanNameGenerator
to use for detected bean classes.
The default is a AnnotationBeanNameGenerator
.
public void setScopeMetadataResolver(@Nullable ScopeMetadataResolver scopeMetadataResolver)
ScopeMetadataResolver
to use for registered component classes.
The default is an AnnotationScopeMetadataResolver
.
public void register(Class<?>... componentClasses)
Calls to register
are idempotent; adding the same
component class more than once has no additional effect.
componentClasses
- one or more component classes,
e.g. @Configuration
classespublic void registerBean(Class<?> beanClass)
beanClass
- the class of the beanpublic <T> void registerBean(Class<T> beanClass, @Nullable Supplier<T> instanceSupplier)
beanClass
- the class of the beaninstanceSupplier
- a callback for creating an instance of the bean
(may be null
)public <T> void registerBean(Class<T> beanClass, String name, @Nullable Supplier<T> instanceSupplier)
beanClass
- the class of the beanname
- an explicit name for the beaninstanceSupplier
- a callback for creating an instance of the bean
(may be null
)public void registerBean(Class<?> beanClass, Class<? extends Annotation>... qualifiers)
beanClass
- the class of the beanqualifiers
- specific qualifier annotations to consider,
in addition to qualifiers at the bean class levelpublic void registerBean(Class<?> beanClass, String name, Class<? extends Annotation>... qualifiers)
beanClass
- the class of the beanname
- an explicit name for the beanqualifiers
- specific qualifier annotations to consider,
in addition to qualifiers at the bean class level