public class AnnotatedBeanDefinitionReader extends Object
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 and using
the given Environment . |
Modifier and Type | Method and Description |
---|---|
BeanDefinitionRegistry |
getRegistry()
Return the BeanDefinitionRegistry that this scanner operates on.
|
void |
register(Class<?>... annotatedClasses)
Register one or more annotated classes to be processed.
|
void |
registerBean(Class<?> annotatedClass)
Register a bean from the given bean class, deriving its metadata from
class-declared annotations.
|
void |
registerBean(Class<?> annotatedClass,
Class<? extends Annotation>... qualifiers)
Register a bean from the given bean class, deriving its metadata from
class-declared annotations.
|
void |
registerBean(Class<?> annotatedClass,
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> annotatedClass,
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> annotatedClass,
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 detected bean 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 and 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)
@Conditional
-annotated component classes should be registered.
The default is a StandardEnvironment
.
registerBean(Class, String, Class...)
public void setBeanNameGenerator(@Nullable BeanNameGenerator beanNameGenerator)
The default is a AnnotationBeanNameGenerator
.
public void setScopeMetadataResolver(@Nullable ScopeMetadataResolver scopeMetadataResolver)
The default is an AnnotationScopeMetadataResolver
.
public void register(Class<?>... annotatedClasses)
Calls to register
are idempotent; adding the same
annotated class more than once has no additional effect.
annotatedClasses
- one or more annotated classes,
e.g. @Configuration
classespublic void registerBean(Class<?> annotatedClass)
annotatedClass
- the class of the beanpublic <T> void registerBean(Class<T> annotatedClass, @Nullable Supplier<T> instanceSupplier)
annotatedClass
- the class of the beaninstanceSupplier
- a callback for creating an instance of the bean
(may be null
)public <T> void registerBean(Class<T> annotatedClass, String name, @Nullable Supplier<T> instanceSupplier)
annotatedClass
- 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<?> annotatedClass, Class<? extends Annotation>... qualifiers)
annotatedClass
- the class of the beanqualifiers
- specific qualifier annotations to consider,
in addition to qualifiers at the bean class levelpublic void registerBean(Class<?> annotatedClass, String name, Class<? extends Annotation>... qualifiers)
annotatedClass
- 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