Interface BeanDefinitionRegistry
- All Known Subinterfaces:
ApplicationContext
,BeanContext
,InitializableBeanContext
- All Known Implementing Classes:
DefaultApplicationContext
,DefaultBeanContext
Core bean definition registry interface containing methods to find BeanDefinition
instances.
- Since:
- 1.0
- Author:
- Graeme Rocher
-
Method Summary
Modifier and TypeMethodDescriptiondefault <T> boolean
containsBean
(Argument<T> beanType) Return whether the bean of the given type is contained within this context.default <T> boolean
containsBean
(Argument<T> beanType, Qualifier<T> qualifier) Return whether the bean of the given type is contained within this context.default boolean
containsBean
(Class<?> beanType) Return whether the bean of the given type is contained within this context.<T> boolean
containsBean
(Class<T> beanType, Qualifier<T> qualifier) Return whether the bean of the given type is contained within this context.findBeanConfiguration
(String configurationName) Obtain a bean configuration by name.default <T> Optional<BeanDefinition<T>>
findBeanDefinition
(Argument<T> beanType) Obtain aBeanDefinition
for the given type.default <T> Optional<BeanDefinition<T>>
findBeanDefinition
(Argument<T> beanType, Qualifier<T> qualifier) Obtain aBeanDefinition
for the given type.default <T> Optional<BeanDefinition<T>>
findBeanDefinition
(Class<T> beanType) Obtain aBeanDefinition
for the given type.<T> Optional<BeanDefinition<T>>
findBeanDefinition
(Class<T> beanType, Qualifier<T> qualifier) Obtain aBeanDefinition
for the given type.<T> Optional<BeanRegistration<T>>
findBeanRegistration
(T bean) Obtain aBeanDefinition
for the given bean.<T> Optional<BeanDefinition<T>>
findProxyBeanDefinition
(Argument<T> beanType, Qualifier<T> qualifier) Obtain the proxyBeanDefinition
for the bean of type and qualifier.<T> Optional<BeanDefinition<T>>
findProxyBeanDefinition
(Class<T> beanType, Qualifier<T> qualifier) Obtain the proxyBeanDefinition
for the bean of type and qualifier.default <T> Optional<BeanDefinition<T>>
findProxyTargetBeanDefinition
(Argument<T> beanType, Qualifier<T> qualifier) Obtain the originalBeanDefinition
for aProxyBeanDefinition
.default <T> Optional<BeanDefinition<T>>
findProxyTargetBeanDefinition
(BeanDefinition<T> proxyBeanDefinition) Obtain the originalBeanDefinition
for aProxyBeanDefinition
.<T> Optional<BeanDefinition<T>>
findProxyTargetBeanDefinition
(Class<T> beanType, Qualifier<T> qualifier) Obtain the originalBeanDefinition
for aProxyBeanDefinition
.getActiveBeanRegistrations
(Qualifier<?> qualifier) Find activeSingleton
beans for the given qualifier.<T> Collection<BeanRegistration<T>>
getActiveBeanRegistrations
(Class<T> beanType) Find activeSingleton
beans for the given bean type.Get all of the registeredBeanDefinition
.default <T> BeanDefinition<T>
getBeanDefinition
(Argument<T> beanType) Obtain aBeanDefinition
for the given type.default <T> BeanDefinition<T>
getBeanDefinition
(Argument<T> beanType, Qualifier<T> qualifier) Obtain aBeanDefinition
for the given type.default <T> BeanDefinition<T>
getBeanDefinition
(Class<T> beanType) Obtain aBeanDefinition
for the given type.default <T> BeanDefinition<T>
getBeanDefinition
(Class<T> beanType, Qualifier<T> qualifier) Obtain aBeanDefinition
for the given type.Get all of the enabledBeanDefinitionReference
.getBeanDefinitions
(Qualifier<Object> qualifier) Get all of theBeanDefinition
for the given qualifier.default <T> Collection<BeanDefinition<T>>
getBeanDefinitions
(Argument<T> beanType) Obtain aBeanDefinition
for the given type.default <T> Collection<BeanDefinition<T>>
getBeanDefinitions
(Argument<T> beanType, Qualifier<T> qualifier) Obtain aBeanDefinition
for the given type.<T> Collection<BeanDefinition<T>>
getBeanDefinitions
(Class<T> beanType) Obtain aBeanDefinition
for the given type.<T> Collection<BeanDefinition<T>>
getBeanDefinitions
(Class<T> beanType, Qualifier<T> qualifier) Obtain aBeanDefinition
for the given type.default <T> BeanRegistration<T>
getBeanRegistration
(Argument<T> beanType, Qualifier<T> qualifier) Find a bean registration for the given bean type and optional qualifier.<T> BeanRegistration<T>
getBeanRegistration
(BeanDefinition<T> beanDefinition) Find a bean registration for the given bean definition.<T> BeanRegistration<T>
getBeanRegistration
(Class<T> beanType, Qualifier<T> qualifier) Find a bean registration for the given bean type and optional qualifier.default <T> Collection<BeanRegistration<T>>
getBeanRegistrations
(Argument<T> beanType, Qualifier<T> qualifier) Find and if necessary initializeSingleton
beans for the given bean type, returning all the active registrations.<T> Collection<BeanRegistration<T>>
getBeanRegistrations
(Class<T> beanType) Find and if necessary initializeSingleton
beans for the given bean type, returning all the active registrations.<T> Collection<BeanRegistration<T>>
getBeanRegistrations
(Class<T> beanType, Qualifier<T> qualifier) Find and if necessary initializeSingleton
beans for the given bean type, returning all the active registrations.default Collection<DisabledBean<?>>
Get all of the disabledDisabledBean
.default <T> BeanDefinition<T>
getProxyTargetBeanDefinition
(Argument<T> beanType, Qualifier<T> qualifier) Obtain the originalBeanDefinition
for aProxyBeanDefinition
.default <T> BeanDefinition<T>
getProxyTargetBeanDefinition
(Class<T> beanType, Qualifier<T> qualifier) Obtain the originalBeanDefinition
for aProxyBeanDefinition
.default <B> BeanDefinitionRegistry
registerBeanDefinition
(RuntimeBeanDefinition<B> definition) Registers a new reference at runtime.default <T> BeanDefinitionRegistry
registerSingleton
(Class<T> type, T singleton) Registers a new singleton bean at runtime.default <T> BeanDefinitionRegistry
registerSingleton
(Class<T> type, T singleton, Qualifier<T> qualifier) Registers a new singleton bean at runtime.registerSingleton
(Class<T> type, T singleton, Qualifier<T> qualifier, boolean inject) Registers a new singleton bean at runtime.default BeanDefinitionRegistry
registerSingleton
(Object singleton) Registers a new singleton bean at runtime.default BeanDefinitionRegistry
registerSingleton
(Object singleton, boolean inject) Registers a new singleton bean at runtime.
-
Method Details
-
containsBean
Return whether the bean of the given type is contained within this context.- Type Parameters:
T
- The concrete type- Parameters:
beanType
- The bean typequalifier
- The qualifier for the bean- Returns:
- True if it is
-
containsBean
Return whether the bean of the given type is contained within this context.- Type Parameters:
T
- The concrete type- Parameters:
beanType
- The bean typequalifier
- The qualifier for the bean- Returns:
- True if it is
- Since:
- 3.0.0
-
containsBean
Return whether the bean of the given type is contained within this context.- Type Parameters:
T
- The concrete type- Parameters:
beanType
- The bean type- Returns:
- True if it is
- Since:
- 3.0.0
-
registerBeanDefinition
@NonNull default <B> BeanDefinitionRegistry registerBeanDefinition(@NonNull RuntimeBeanDefinition<B> definition) Registers a new reference at runtime. Not that registering beans can impact the object graph therefore should this should be done as soon as possible prior to the creation of other beans preferably with a high priorityContext
scope bean.- Type Parameters:
B
- The bean type- Parameters:
definition
- The reference.- Returns:
- The registry
- Since:
- 3.6.0
-
registerSingleton
@NonNull <T> BeanDefinitionRegistry registerSingleton(@NonNull Class<T> type, @NonNull T singleton, @Nullable Qualifier<T> qualifier, boolean inject) Registers a new singleton bean at runtime. This method expects that the bean definition data will have been compiled ahead of time.
If bean definition data is found the method will perform dependency injection on the instance followed by invoking any
PostConstruct
hooks.If no bean definition data is found the bean is registered as is.
- Type Parameters:
T
- The concrete type- Parameters:
type
- The bean typesingleton
- The singleton beanqualifier
- The bean qualifierinject
- Whether the singleton should be injected (defaults to true)- Returns:
- This bean context
-
findBeanConfiguration
Obtain a bean configuration by name.- Parameters:
configurationName
- The configuration name- Returns:
- An optional with the configuration either present or not
-
findBeanDefinition
@NonNull <T> Optional<BeanDefinition<T>> findBeanDefinition(@NonNull Class<T> beanType, @Nullable Qualifier<T> qualifier) Obtain aBeanDefinition
for the given type.- Type Parameters:
T
- The concrete type- Parameters:
beanType
- The typequalifier
- The qualifier- Returns:
- An
Optional
of the bean definition - Throws:
NonUniqueBeanException
- When multiple possible bean definitions exist for the given type
-
findBeanDefinition
@NonNull default <T> Optional<BeanDefinition<T>> findBeanDefinition(@NonNull Argument<T> beanType, @Nullable Qualifier<T> qualifier) Obtain aBeanDefinition
for the given type.- Type Parameters:
T
- The concrete type- Parameters:
beanType
- The potentially parameterized typequalifier
- The qualifier- Returns:
- An
Optional
of the bean definition - Throws:
NonUniqueBeanException
- When multiple possible bean definitions exist for the given type- Since:
- 3.0.0
-
findBeanDefinition
Obtain aBeanDefinition
for the given type.- Type Parameters:
T
- The concrete type- Parameters:
beanType
- The potentially parameterized type- Returns:
- An
Optional
of the bean definition - Throws:
NonUniqueBeanException
- When multiple possible bean definitions exist for the given type- Since:
- 3.0.0
-
findBeanRegistration
Obtain aBeanDefinition
for the given bean.- Type Parameters:
T
- The concrete type- Parameters:
bean
- The bean- Returns:
- An
Optional
of the bean definition - Throws:
NonUniqueBeanException
- When multiple possible bean definitions exist for the given type
-
getBeanDefinitions
Obtain aBeanDefinition
for the given type.- Type Parameters:
T
- The concrete type- Parameters:
beanType
- The type- Returns:
- An
Optional
of the bean definition - Throws:
NonUniqueBeanException
- When multiple possible bean definitions exist for the given type
-
getBeanDefinitions
@NonNull default <T> Collection<BeanDefinition<T>> getBeanDefinitions(@NonNull Argument<T> beanType) Obtain aBeanDefinition
for the given type.- Type Parameters:
T
- The concrete type- Parameters:
beanType
- The type- Returns:
- An
Optional
of the bean definition - Throws:
NonUniqueBeanException
- When multiple possible bean definitions exist for the given type- Since:
- 3.0.0
-
getBeanDefinitions
@NonNull <T> Collection<BeanDefinition<T>> getBeanDefinitions(@NonNull Class<T> beanType, @Nullable Qualifier<T> qualifier) Obtain aBeanDefinition
for the given type.- Type Parameters:
T
- The concrete type- Parameters:
beanType
- The typequalifier
- The qualifier- Returns:
- An
Optional
of the bean definition - Throws:
NonUniqueBeanException
- When multiple possible bean definitions exist for the given type
-
getBeanDefinitions
@NonNull default <T> Collection<BeanDefinition<T>> getBeanDefinitions(@NonNull Argument<T> beanType, @Nullable Qualifier<T> qualifier) Obtain aBeanDefinition
for the given type.- Type Parameters:
T
- The concrete type- Parameters:
beanType
- The typequalifier
- The qualifier- Returns:
- An
Optional
of the bean definition - Throws:
NonUniqueBeanException
- When multiple possible bean definitions exist for the given type- Since:
- 3.0.0
-
getBeanDefinitions
Get all of theBeanDefinition
for the given qualifier.- Parameters:
qualifier
- The qualifier- Returns:
- The bean definitions
-
getAllBeanDefinitions
Get all of the registeredBeanDefinition
.- Returns:
- The bean definitions
-
getBeanDefinitionReferences
Get all of the enabledBeanDefinitionReference
.- Returns:
- The bean definitions
-
getDisabledBeans
Get all of the disabledDisabledBean
.- Returns:
- The disabled bean definitions
- Since:
- 4.0.0
-
getActiveBeanRegistrations
@NonNull Collection<BeanRegistration<?>> getActiveBeanRegistrations(@NonNull Qualifier<?> qualifier) Find activeSingleton
beans for the given qualifier. Note that this method can return multiple registrations for a given singleton bean instance since each bean may have multiple qualifiers.- Parameters:
qualifier
- The qualifier- Returns:
- The beans
-
getActiveBeanRegistrations
Find activeSingleton
beans for the given bean type. Note that this method can return multiple registrations for a given singleton bean instance since each bean may have multiple qualifiers.- Type Parameters:
T
- The concrete type- Parameters:
beanType
- The bean type- Returns:
- The beans
-
getBeanRegistrations
Find and if necessary initializeSingleton
beans for the given bean type, returning all the active registrations. Note that this method can return multiple registrations for a given singleton bean instance since each bean may have multiple qualifiers.- Type Parameters:
T
- The concrete type- Parameters:
beanType
- The bean type- Returns:
- The beans
-
getBeanRegistrations
@NonNull <T> Collection<BeanRegistration<T>> getBeanRegistrations(@NonNull Class<T> beanType, @Nullable Qualifier<T> qualifier) Find and if necessary initializeSingleton
beans for the given bean type, returning all the active registrations. Note that this method can return multiple registrations for a given singleton bean instance since each bean may have multiple qualifiers.- Type Parameters:
T
- The concrete type- Parameters:
beanType
- The bean typequalifier
- The qualifier- Returns:
- The beans
- Since:
- 2.4.0
-
getBeanRegistrations
@NonNull default <T> Collection<BeanRegistration<T>> getBeanRegistrations(@NonNull Argument<T> beanType, @Nullable Qualifier<T> qualifier) Find and if necessary initializeSingleton
beans for the given bean type, returning all the active registrations. Note that this method can return multiple registrations for a given singleton bean instance since each bean may have multiple qualifiers.- Type Parameters:
T
- The concrete type- Parameters:
beanType
- The bean typequalifier
- The qualifier- Returns:
- The beans
- Since:
- 3.0.0
-
getBeanRegistration
@NonNull <T> BeanRegistration<T> getBeanRegistration(@NonNull Class<T> beanType, @Nullable Qualifier<T> qualifier) Find a bean registration for the given bean type and optional qualifier.- Type Parameters:
T
- The concrete type- Parameters:
beanType
- The bean typequalifier
- The qualifier- Returns:
- The bean registration
- Throws:
NoSuchBeanException
- if the bean doesn't exist- Since:
- 2.4.0
-
getBeanRegistration
@NonNull default <T> BeanRegistration<T> getBeanRegistration(@NonNull Argument<T> beanType, @Nullable Qualifier<T> qualifier) Find a bean registration for the given bean type and optional qualifier.- Type Parameters:
T
- The concrete type- Parameters:
beanType
- The potentially parameterized bean typequalifier
- The qualifier- Returns:
- The bean registration
- Throws:
NoSuchBeanException
- if the bean doesn't exist- Since:
- 3.0.0
-
getBeanRegistration
Find a bean registration for the given bean definition.- Type Parameters:
T
- The concrete type- Parameters:
beanDefinition
- The bean definition- Returns:
- The bean registration
- Throws:
NoSuchBeanException
- if the bean doesn't exist- Since:
- 3.5.0
-
findProxyTargetBeanDefinition
@NonNull <T> Optional<BeanDefinition<T>> findProxyTargetBeanDefinition(@NonNull Class<T> beanType, @Nullable Qualifier<T> qualifier) Obtain the originalBeanDefinition
for aProxyBeanDefinition
.- Type Parameters:
T
- The concrete type- Parameters:
beanType
- The typequalifier
- The qualifier- Returns:
- An
Optional
of the bean definition - Throws:
NonUniqueBeanException
- When multiple possible bean definitions exist for the given type
-
findProxyTargetBeanDefinition
@NonNull default <T> Optional<BeanDefinition<T>> findProxyTargetBeanDefinition(@NonNull Argument<T> beanType, @Nullable Qualifier<T> qualifier) Obtain the originalBeanDefinition
for aProxyBeanDefinition
.- Type Parameters:
T
- The concrete type- Parameters:
beanType
- The typequalifier
- The qualifier- Returns:
- An
Optional
of the bean definition - Throws:
NonUniqueBeanException
- When multiple possible bean definitions exist for the given type
-
findProxyTargetBeanDefinition
@NonNull default <T> Optional<BeanDefinition<T>> findProxyTargetBeanDefinition(@NonNull BeanDefinition<T> proxyBeanDefinition) Obtain the originalBeanDefinition
for aProxyBeanDefinition
.- Type Parameters:
T
- The concrete type- Parameters:
proxyBeanDefinition
- The proxy bean definition- Returns:
- An
Optional
of the bean definition - Throws:
NonUniqueBeanException
- When multiple possible bean definitions exist for the given type- Since:
- 3.5.0
-
findProxyBeanDefinition
@NonNull <T> Optional<BeanDefinition<T>> findProxyBeanDefinition(@NonNull Class<T> beanType, @Nullable Qualifier<T> qualifier) Obtain the proxyBeanDefinition
for the bean of type and qualifier.- Type Parameters:
T
- The concrete type- Parameters:
beanType
- The typequalifier
- The qualifier- Returns:
- An
Optional
of the bean definition - Throws:
NonUniqueBeanException
- When multiple possible bean definitions exist for the given type
-
findProxyBeanDefinition
@NonNull <T> Optional<BeanDefinition<T>> findProxyBeanDefinition(@NonNull Argument<T> beanType, @Nullable Qualifier<T> qualifier) Obtain the proxyBeanDefinition
for the bean of type and qualifier.- Type Parameters:
T
- The concrete type- Parameters:
beanType
- The typequalifier
- The qualifier- Returns:
- An
Optional
of the bean definition - Throws:
NonUniqueBeanException
- When multiple possible bean definitions exist for the given type
-
registerSingleton
@NonNull default <T> BeanDefinitionRegistry registerSingleton(@NonNull Class<T> type, @NonNull T singleton, @Nullable Qualifier<T> qualifier) Registers a new singleton bean at runtime. This method expects that the bean definition data will have been compiled ahead of time.
If bean definition data is found the method will perform dependency injection on the instance followed by invoking any
PostConstruct
hooks.If no bean definition data is found the bean is registered as is.
- Type Parameters:
T
- The concrete type- Parameters:
type
- The bean typesingleton
- The singleton beanqualifier
- The bean qualifier- Returns:
- This bean context
-
registerSingleton
Registers a new singleton bean at runtime. This method expects that the bean definition data will have been compiled ahead of time.
If bean definition data is found the method will perform dependency injection on the instance followed by invoking any
PostConstruct
hooks.If no bean definition data is found the bean is registered as is.
- Type Parameters:
T
- The concrete type- Parameters:
type
- the bean typesingleton
- The singleton bean- Returns:
- This bean context
-
getBeanDefinition
@NonNull default <T> BeanDefinition<T> getBeanDefinition(@NonNull Class<T> beanType, @Nullable Qualifier<T> qualifier) Obtain aBeanDefinition
for the given type.- Type Parameters:
T
- The concrete type- Parameters:
beanType
- The typequalifier
- The qualifier- Returns:
- The
BeanDefinition
- Throws:
NonUniqueBeanException
- When multiple possible bean definitions exist for the given typeNoSuchBeanException
- If the bean cannot be found
-
getBeanDefinition
@NonNull default <T> BeanDefinition<T> getBeanDefinition(@NonNull Argument<T> beanType, @Nullable Qualifier<T> qualifier) Obtain aBeanDefinition
for the given type.- Type Parameters:
T
- The concrete type- Parameters:
beanType
- The potentially parameterized type typequalifier
- The qualifier- Returns:
- The
BeanDefinition
- Throws:
NonUniqueBeanException
- When multiple possible bean definitions exist for the given typeNoSuchBeanException
- If the bean cannot be found- Since:
- 3.0.
-
getProxyTargetBeanDefinition
@NonNull default <T> BeanDefinition<T> getProxyTargetBeanDefinition(@NonNull Class<T> beanType, @Nullable Qualifier<T> qualifier) Obtain the originalBeanDefinition
for aProxyBeanDefinition
.- Type Parameters:
T
- The concrete type- Parameters:
beanType
- The typequalifier
- The qualifier- Returns:
- The
BeanDefinition
- Throws:
NonUniqueBeanException
- When multiple possible bean definitions exist for the given typeNoSuchBeanException
- If the bean cannot be found
-
getProxyTargetBeanDefinition
@NonNull default <T> BeanDefinition<T> getProxyTargetBeanDefinition(@NonNull Argument<T> beanType, @Nullable Qualifier<T> qualifier) Obtain the originalBeanDefinition
for aProxyBeanDefinition
.- Type Parameters:
T
- The concrete type- Parameters:
beanType
- The typequalifier
- The qualifier- Returns:
- The
BeanDefinition
- Throws:
NonUniqueBeanException
- When multiple possible bean definitions exist for the given typeNoSuchBeanException
- If the bean cannot be found- Since:
- 3.0.0
-
getBeanDefinition
Obtain aBeanDefinition
for the given type.- Type Parameters:
T
- The concrete type- Parameters:
beanType
- The type- Returns:
- The
BeanDefinition
- Throws:
NonUniqueBeanException
- When multiple possible bean definitions exist for the given typeNoSuchBeanException
- If the bean cannot be found
-
getBeanDefinition
Obtain aBeanDefinition
for the given type.- Type Parameters:
T
- The concrete type- Parameters:
beanType
- The type- Returns:
- The
BeanDefinition
- Throws:
NonUniqueBeanException
- When multiple possible bean definitions exist for the given typeNoSuchBeanException
- If the bean cannot be found- Since:
- 3.0.0
-
findBeanDefinition
Obtain aBeanDefinition
for the given type.- Type Parameters:
T
- The concrete type- Parameters:
beanType
- The type- Returns:
- An
Optional
of the bean definition - Throws:
NonUniqueBeanException
- When multiple possible bean definitions exist for the given type
-
registerSingleton
Registers a new singleton bean at runtime. This method expects that the bean definition data will have been compiled ahead of time.
If bean definition data is found the method will perform dependency injection on the instance followed by invoking any
PostConstruct
hooks.If no bean definition data is found the bean is registered as is.
- Parameters:
singleton
- The singleton bean- Returns:
- This bean context
-
registerSingleton
@NonNull default BeanDefinitionRegistry registerSingleton(@NonNull Object singleton, boolean inject) Registers a new singleton bean at runtime. This method expects that the bean definition data will have been compiled ahead of time.
If bean definition data is found the method will perform dependency injection on the instance followed by invoking any
PostConstruct
hooks.If no bean definition data is found the bean is registered as is.
- Parameters:
singleton
- The singleton beaninject
- Whether the singleton should be injected (defaults to true)- Returns:
- This bean context
-
containsBean
Return whether the bean of the given type is contained within this context.- Parameters:
beanType
- The bean type- Returns:
- True if it is
-