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
(@NonNull Argument<T> beanType) Return whether the bean of the given type is contained within this context.default <T> boolean
containsBean
(@NonNull Argument<T> beanType, @Nullable Qualifier<T> qualifier) Return whether the bean of the given type is contained within this context.default boolean
containsBean
(@NonNull Class<?> beanType) Return whether the bean of the given type is contained within this context.<T> boolean
containsBean
(@NonNull Class<T> beanType, @Nullable Qualifier<T> qualifier) Return whether the bean of the given type is contained within this context.findBeanConfiguration
(@NonNull String configurationName) Obtain a bean configuration by name.default <T> @NonNull Optional<BeanDefinition<T>>
findBeanDefinition
(@NonNull Argument<T> beanType) Obtain aBeanDefinition
for the given type.default <T> @NonNull Optional<BeanDefinition<T>>
findBeanDefinition
(@NonNull Argument<T> beanType, @Nullable Qualifier<T> qualifier) Obtain aBeanDefinition
for the given type.default <T> @NonNull Optional<BeanDefinition<T>>
findBeanDefinition
(@NonNull Class<T> beanType) Obtain aBeanDefinition
for the given type.<T> @NonNull Optional<BeanDefinition<T>>
findBeanDefinition
(@NonNull Class<T> beanType, @Nullable Qualifier<T> qualifier) Obtain aBeanDefinition
for the given type.<T> @NonNull Optional<BeanRegistration<T>>
findBeanRegistration
(T bean) Obtain aBeanDefinition
for the given bean.<T> @NonNull Optional<BeanDefinition<T>>
findProxyBeanDefinition
(@NonNull Argument<T> beanType, @Nullable Qualifier<T> qualifier) Obtain the proxyBeanDefinition
for the bean of type and qualifier.<T> @NonNull Optional<BeanDefinition<T>>
findProxyBeanDefinition
(@NonNull Class<T> beanType, @Nullable Qualifier<T> qualifier) Obtain the proxyBeanDefinition
for the bean of type and qualifier.default <T> @NonNull Optional<BeanDefinition<T>>
findProxyTargetBeanDefinition
(@NonNull Argument<T> beanType, @Nullable Qualifier<T> qualifier) Obtain the originalBeanDefinition
for aProxyBeanDefinition
.default <T> @NonNull Optional<BeanDefinition<T>>
findProxyTargetBeanDefinition
(@NonNull BeanDefinition<T> proxyBeanDefinition) Obtain the originalBeanDefinition
for aProxyBeanDefinition
.<T> @NonNull Optional<BeanDefinition<T>>
findProxyTargetBeanDefinition
(@NonNull Class<T> beanType, @Nullable Qualifier<T> qualifier) Obtain the originalBeanDefinition
for aProxyBeanDefinition
.getActiveBeanRegistrations
(@NonNull Qualifier<?> qualifier) Find activeSingleton
beans for the given qualifier.<T> @NonNull Collection<BeanRegistration<T>>
getActiveBeanRegistrations
(@NonNull Class<T> beanType) Find activeSingleton
beans for the given bean type.Get all of the registeredBeanDefinition
.default <T> @NonNull BeanDefinition<T>
getBeanDefinition
(@NonNull Argument<T> beanType) Obtain aBeanDefinition
for the given type.default <T> @NonNull BeanDefinition<T>
getBeanDefinition
(@NonNull Argument<T> beanType, @Nullable Qualifier<T> qualifier) Obtain aBeanDefinition
for the given type.default <T> @NonNull BeanDefinition<T>
getBeanDefinition
(@NonNull Class<T> beanType) Obtain aBeanDefinition
for the given type.default <T> @NonNull BeanDefinition<T>
getBeanDefinition
(@NonNull Class<T> beanType, @Nullable Qualifier<T> qualifier) Obtain aBeanDefinition
for the given type.Get all of the enabledBeanDefinitionReference
.getBeanDefinitions
(@NonNull Qualifier<Object> qualifier) Get all of theBeanDefinition
for the given qualifier.default <T> @NonNull Collection<BeanDefinition<T>>
getBeanDefinitions
(@NonNull Argument<T> beanType) Obtain aBeanDefinition
for the given type.default <T> @NonNull Collection<BeanDefinition<T>>
getBeanDefinitions
(@NonNull Argument<T> beanType, @Nullable Qualifier<T> qualifier) Obtain aBeanDefinition
for the given type.<T> @NonNull Collection<BeanDefinition<T>>
getBeanDefinitions
(@NonNull Class<T> beanType) Obtain aBeanDefinition
for the given type.<T> @NonNull Collection<BeanDefinition<T>>
getBeanDefinitions
(@NonNull Class<T> beanType, @Nullable Qualifier<T> qualifier) Obtain aBeanDefinition
for the given type.default <T> @NonNull BeanRegistration<T>
getBeanRegistration
(@NonNull Argument<T> beanType, @Nullable Qualifier<T> qualifier) Find a bean registration for the given bean type and optional qualifier.<T> @NonNull BeanRegistration<T>
getBeanRegistration
(@NonNull BeanDefinition<T> beanDefinition) Find a bean registration for the given bean definition.<T> @NonNull BeanRegistration<T>
getBeanRegistration
(@NonNull Class<T> beanType, @Nullable Qualifier<T> qualifier) Find a bean registration for the given bean type and optional qualifier.default <T> @NonNull 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.<T> @NonNull Collection<BeanRegistration<T>>
getBeanRegistrations
(@NonNull Class<T> beanType) Find and if necessary initializeSingleton
beans for the given bean type, returning all the active registrations.<T> @NonNull 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.default @NonNull Collection<DisabledBean<?>>
Get all of the disabledDisabledBean
.default <T> @NonNull BeanDefinition<T>
getProxyTargetBeanDefinition
(@NonNull Argument<T> beanType, @Nullable Qualifier<T> qualifier) Obtain the originalBeanDefinition
for aProxyBeanDefinition
.default <T> @NonNull BeanDefinition<T>
getProxyTargetBeanDefinition
(@NonNull Class<T> beanType, @Nullable Qualifier<T> qualifier) Obtain the originalBeanDefinition
for aProxyBeanDefinition
.default <B> @NonNull BeanDefinitionRegistry
registerBeanDefinition
(@NonNull RuntimeBeanDefinition<B> definition) Registers a new reference at runtime.default <T> BeanDefinitionRegistry
registerSingleton
(@NonNull Class<T> type, T singleton) Registers a new singleton bean at runtime.default <T> @NonNull BeanDefinitionRegistry
registerSingleton
(@NonNull Class<T> type, T singleton, @Nullable Qualifier<T> qualifier) Registers a new singleton bean at runtime.registerSingleton
(@NonNull Class<T> type, T singleton, @Nullable Qualifier<T> qualifier, boolean inject) Registers a new singleton bean at runtime.default @NonNull BeanDefinitionRegistry
registerSingleton
(@NonNull Object singleton) Registers a new singleton bean at runtime.default @NonNull BeanDefinitionRegistry
registerSingleton
(@NonNull Object singleton, boolean inject) Registers a new singleton bean at runtime.
-
Method Details
-
containsBean
<T> boolean containsBean(@NonNull @NonNull Class<T> beanType, @Nullable @Nullable Qualifier<T> qualifier) 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
default <T> boolean containsBean(@NonNull @NonNull Argument<T> beanType, @Nullable @Nullable Qualifier<T> qualifier) 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> @NonNull BeanDefinitionRegistry registerBeanDefinition(@NonNull @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> @NonNull BeanDefinitionRegistry registerSingleton(@NonNull @NonNull Class<T> type, @NonNull T singleton, @Nullable @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
@NonNull @NonNull Optional<BeanConfiguration> findBeanConfiguration(@NonNull @NonNull String configurationName) Obtain a bean configuration by name.- Parameters:
configurationName
- The configuration name- Returns:
- An optional with the configuration either present or not
-
findBeanDefinition
@NonNull <T> @NonNull Optional<BeanDefinition<T>> findBeanDefinition(@NonNull @NonNull Class<T> beanType, @Nullable @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> @NonNull Optional<BeanDefinition<T>> findBeanDefinition(@NonNull @NonNull Argument<T> beanType, @Nullable @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
@NonNull default <T> @NonNull Optional<BeanDefinition<T>> findBeanDefinition(@NonNull @NonNull Argument<T> beanType) 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
@NonNull <T> @NonNull Collection<BeanDefinition<T>> getBeanDefinitions(@NonNull @NonNull Class<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
-
getBeanDefinitions
@NonNull default <T> @NonNull Collection<BeanDefinition<T>> getBeanDefinitions(@NonNull @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> @NonNull Collection<BeanDefinition<T>> getBeanDefinitions(@NonNull @NonNull Class<T> beanType, @Nullable @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> @NonNull Collection<BeanDefinition<T>> getBeanDefinitions(@NonNull @NonNull Argument<T> beanType, @Nullable @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
@NonNull @NonNull Collection<BeanDefinition<?>> getBeanDefinitions(@NonNull @NonNull Qualifier<Object> qualifier) 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 @NonNull Collection<BeanRegistration<?>> getActiveBeanRegistrations(@NonNull @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
@NonNull <T> @NonNull Collection<BeanRegistration<T>> getActiveBeanRegistrations(@NonNull @NonNull Class<T> beanType) 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
@NonNull <T> @NonNull Collection<BeanRegistration<T>> getBeanRegistrations(@NonNull @NonNull Class<T> beanType) 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> @NonNull Collection<BeanRegistration<T>> getBeanRegistrations(@NonNull @NonNull Class<T> beanType, @Nullable @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> @NonNull Collection<BeanRegistration<T>> getBeanRegistrations(@NonNull @NonNull Argument<T> beanType, @Nullable @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> @NonNull BeanRegistration<T> getBeanRegistration(@NonNull @NonNull Class<T> beanType, @Nullable @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> @NonNull BeanRegistration<T> getBeanRegistration(@NonNull @NonNull Argument<T> beanType, @Nullable @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
@NonNull <T> @NonNull BeanRegistration<T> getBeanRegistration(@NonNull @NonNull BeanDefinition<T> beanDefinition) 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> @NonNull Optional<BeanDefinition<T>> findProxyTargetBeanDefinition(@NonNull @NonNull Class<T> beanType, @Nullable @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> @NonNull Optional<BeanDefinition<T>> findProxyTargetBeanDefinition(@NonNull @NonNull Argument<T> beanType, @Nullable @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> @NonNull Optional<BeanDefinition<T>> findProxyTargetBeanDefinition(@NonNull @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> @NonNull Optional<BeanDefinition<T>> findProxyBeanDefinition(@NonNull @NonNull Class<T> beanType, @Nullable @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> @NonNull Optional<BeanDefinition<T>> findProxyBeanDefinition(@NonNull @NonNull Argument<T> beanType, @Nullable @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> @NonNull BeanDefinitionRegistry registerSingleton(@NonNull @NonNull Class<T> type, @NonNull T singleton, @Nullable @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
default <T> BeanDefinitionRegistry registerSingleton(@NonNull @NonNull Class<T> type, @NonNull T singleton) 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> @NonNull BeanDefinition<T> getBeanDefinition(@NonNull @NonNull Class<T> beanType, @Nullable @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> @NonNull BeanDefinition<T> getBeanDefinition(@NonNull @NonNull Argument<T> beanType, @Nullable @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> @NonNull BeanDefinition<T> getProxyTargetBeanDefinition(@NonNull @NonNull Class<T> beanType, @Nullable @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> @NonNull BeanDefinition<T> getProxyTargetBeanDefinition(@NonNull @NonNull Argument<T> beanType, @Nullable @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
@NonNull default <T> @NonNull BeanDefinition<T> getBeanDefinition(@NonNull @NonNull Class<T> beanType) 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
@NonNull default <T> @NonNull BeanDefinition<T> getBeanDefinition(@NonNull @NonNull Argument<T> beanType) 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
@NonNull default <T> @NonNull Optional<BeanDefinition<T>> findBeanDefinition(@NonNull @NonNull Class<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
-
registerSingleton
@NonNull default @NonNull BeanDefinitionRegistry registerSingleton(@NonNull @NonNull Object singleton) 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 @NonNull BeanDefinitionRegistry registerSingleton(@NonNull @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
-