Class DefaultBeanContext

java.lang.Object
io.micronaut.context.DefaultBeanContext
All Implemented Interfaces:
BeanContext, BeanDefinitionRegistry, BeanLocator, ApplicationEventPublisher<Object>, ExecutionHandleLocator, InitializableBeanContext, LifeCycle<BeanContext>, io.micronaut.core.annotation.AnnotationMetadataResolver, io.micronaut.core.attr.AttributeHolder, io.micronaut.core.attr.MutableAttributeHolder, io.micronaut.core.convert.ConversionServiceProvider, Closeable, AutoCloseable
Direct Known Subclasses:
DefaultApplicationContext

public class DefaultBeanContext extends Object implements InitializableBeanContext
The default context implementations.
Since:
1.0
  • Field Details

    • LOG

      protected static final org.slf4j.Logger LOG
    • LOG_LIFECYCLE

      protected static final org.slf4j.Logger LOG_LIFECYCLE
    • MSG_BEAN_DEFINITION

      public static final String MSG_BEAN_DEFINITION
      See Also:
    • running

      protected final AtomicBoolean running
    • initializing

      protected final AtomicBoolean initializing
    • terminating

      protected final AtomicBoolean terminating
    • singletonScope

      protected final io.micronaut.context.SingletonScope singletonScope
  • Constructor Details

    • DefaultBeanContext

      public DefaultBeanContext()
      Construct a new bean context using the same classloader that loaded this DefaultBeanContext class.
    • DefaultBeanContext

      public DefaultBeanContext(@NonNull @NonNull ClassLoader classLoader)
      Construct a new bean context with the given class loader.
      Parameters:
      classLoader - The class loader
    • DefaultBeanContext

      public DefaultBeanContext(@NonNull @NonNull io.micronaut.core.io.scan.ClassPathResourceLoader resourceLoader)
      Construct a new bean context with the given class loader.
      Parameters:
      resourceLoader - The resource loader
    • DefaultBeanContext

      public DefaultBeanContext(@NonNull @NonNull BeanContextConfiguration contextConfiguration)
      Creates a new bean context with the given configuration.
      Parameters:
      contextConfiguration - The context configuration
  • Method Details

    • createCustomScopeRegistry

      @NonNull protected @NonNull CustomScopeRegistry createCustomScopeRegistry()
      Allows customizing the custom scope registry.
      Returns:
      The custom scope registry to use.
      Since:
      3.0.0
    • isRunning

      public boolean isRunning()
      Specified by:
      isRunning in interface LifeCycle<BeanContext>
      Returns:
      Whether the component is running
    • start

      public BeanContext start()
      The start method will read all bean definition classes found on the classpath and initialize any pre-required state.
      Specified by:
      start in interface LifeCycle<BeanContext>
      Returns:
      This lifecycle component
    • registerConversionService

      protected void registerConversionService()
      Registers conversion service.
    • stop

      public BeanContext stop()
      The close method will shut down the context calling PreDestroy hooks on loaded singletons.
      Specified by:
      stop in interface LifeCycle<BeanContext>
      Returns:
      This lifecycle component
    • resolveMetadata

      @NonNull public @NonNull io.micronaut.core.annotation.AnnotationMetadata resolveMetadata(Class<?> type)
      Specified by:
      resolveMetadata in interface io.micronaut.core.annotation.AnnotationMetadataResolver
    • refreshBean

      public <T> Optional<T> refreshBean(@Nullable @Nullable BeanIdentifier identifier)
      Description copied from interface: BeanContext

      Refresh the state of the given registered bean applying dependency injection and configuration wiring again.

      Note that if the bean was produced by a Factory then this method will refresh the factory too

      Specified by:
      refreshBean in interface BeanContext
      Type Parameters:
      T - The concrete class
      Parameters:
      identifier - The BeanIdentifier
      Returns:
      An Optional of the instance if it exists for the given registration
    • refreshBean

      public <T> void refreshBean(@NonNull @NonNull BeanRegistration<T> beanRegistration)
      Description copied from interface: BeanContext

      Refresh the state of the given registered bean applying dependency injection and configuration wiring again.

      Note that if the bean was produced by a Factory then this method will refresh the factory too

      This methods skips an additional resolution of the BeanRegistration.
      Specified by:
      refreshBean in interface BeanContext
      Type Parameters:
      T - The concrete class
      Parameters:
      beanRegistration - The BeanRegistration
    • getActiveBeanRegistrations

      public Collection<BeanRegistration<?>> getActiveBeanRegistrations(Qualifier<?> qualifier)
      Description copied from interface: BeanDefinitionRegistry
      Find active Singleton 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.
      Specified by:
      getActiveBeanRegistrations in interface BeanDefinitionRegistry
      Parameters:
      qualifier - The qualifier
      Returns:
      The beans
    • getActiveBeanRegistrations

      public <T> Collection<BeanRegistration<T>> getActiveBeanRegistrations(Class<T> beanType)
      Description copied from interface: BeanDefinitionRegistry
      Find active Singleton 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.
      Specified by:
      getActiveBeanRegistrations in interface BeanDefinitionRegistry
      Type Parameters:
      T - The concrete type
      Parameters:
      beanType - The bean type
      Returns:
      The beans
    • getBeanRegistrations

      public <T> Collection<BeanRegistration<T>> getBeanRegistrations(Class<T> beanType)
      Description copied from interface: BeanDefinitionRegistry
      Find and if necessary initialize Singleton 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.
      Specified by:
      getBeanRegistrations in interface BeanDefinitionRegistry
      Type Parameters:
      T - The concrete type
      Parameters:
      beanType - The bean type
      Returns:
      The beans
    • getBeanRegistration

      public <T> BeanRegistration<T> getBeanRegistration(Class<T> beanType, Qualifier<T> qualifier)
      Description copied from interface: BeanDefinitionRegistry
      Find a bean registration for the given bean type and optional qualifier.
      Specified by:
      getBeanRegistration in interface BeanDefinitionRegistry
      Type Parameters:
      T - The concrete type
      Parameters:
      beanType - The bean type
      qualifier - The qualifier
      Returns:
      The bean registration
    • getBeanRegistrations

      public <T> Collection<BeanRegistration<T>> getBeanRegistrations(Class<T> beanType, Qualifier<T> qualifier)
      Description copied from interface: BeanDefinitionRegistry
      Find and if necessary initialize Singleton 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.
      Specified by:
      getBeanRegistrations in interface BeanDefinitionRegistry
      Type Parameters:
      T - The concrete type
      Parameters:
      beanType - The bean type
      qualifier - The qualifier
      Returns:
      The beans
    • getBeanRegistrations

      public <T> Collection<BeanRegistration<T>> getBeanRegistrations(io.micronaut.core.type.Argument<T> beanType, Qualifier<T> qualifier)
      Description copied from interface: BeanDefinitionRegistry
      Find and if necessary initialize Singleton 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.
      Specified by:
      getBeanRegistrations in interface BeanDefinitionRegistry
      Type Parameters:
      T - The concrete type
      Parameters:
      beanType - The bean type
      qualifier - The qualifier
      Returns:
      The beans
    • getBeanRegistration

      public <T> BeanRegistration<T> getBeanRegistration(io.micronaut.core.type.Argument<T> beanType, Qualifier<T> qualifier)
      Description copied from interface: BeanDefinitionRegistry
      Find a bean registration for the given bean type and optional qualifier.
      Specified by:
      getBeanRegistration in interface BeanDefinitionRegistry
      Type Parameters:
      T - The concrete type
      Parameters:
      beanType - The potentially parameterized bean type
      qualifier - The qualifier
      Returns:
      The bean registration
    • getBeanRegistration

      public <T> BeanRegistration<T> getBeanRegistration(BeanDefinition<T> beanDefinition)
      Description copied from interface: BeanDefinitionRegistry
      Find a bean registration for the given bean definition.
      Specified by:
      getBeanRegistration in interface BeanDefinitionRegistry
      Type Parameters:
      T - The concrete type
      Parameters:
      beanDefinition - The bean definition
      Returns:
      The bean registration
    • findBeanRegistration

      public <T> Optional<BeanRegistration<T>> findBeanRegistration(T bean)
      Description copied from interface: BeanDefinitionRegistry
      Obtain a BeanRegistration for the given bean.
      Specified by:
      findBeanRegistration in interface BeanDefinitionRegistry
      Type Parameters:
      T - The concrete type
      Parameters:
      bean - The bean
      Returns:
      An Optional of the bean definition
    • findExecutionHandle

      public <T, R> Optional<MethodExecutionHandle<T,R>> findExecutionHandle(Class<T> beanType, String method, Class<?>... arguments)
      Description copied from interface: ExecutionHandleLocator
      Finds an optimized execution handle for invoking a bean method. The execution handle may or may not be implemented by generated byte code.
      Specified by:
      findExecutionHandle in interface ExecutionHandleLocator
      Type Parameters:
      T - The target bean
      R - The result type of the execution handle
      Parameters:
      beanType - The bean type
      method - The method
      arguments - The arguments
      Returns:
      The execution handle
    • createExecutionHandle

      public MethodExecutionHandle<?,Object> createExecutionHandle(BeanDefinition<?> beanDefinition, ExecutableMethod<Object,?> method)
      Description copied from interface: ExecutionHandleLocator
      Create an execution handle for the given bean definition and method.
      Specified by:
      createExecutionHandle in interface ExecutionHandleLocator
      Parameters:
      beanDefinition - The bean definition
      method - The method
      Returns:
      The execution handle
    • findExecutionHandle

      public <T, R> Optional<MethodExecutionHandle<T,R>> findExecutionHandle(Class<T> beanType, Qualifier<?> q, String method, Class<?>... arguments)
      Description copied from interface: ExecutionHandleLocator
      Finds an optimized execution handle for invoking a bean method. The execution handle may or may not be implemented by generated byte code.
      Specified by:
      findExecutionHandle in interface ExecutionHandleLocator
      Type Parameters:
      T - The target bean
      R - The result type of the execution handle
      Parameters:
      beanType - The bean type
      q - The bean qualifer
      method - The method
      arguments - The arguments
      Returns:
      The execution handle
    • findExecutableMethod

      public <T, R> Optional<ExecutableMethod<T,R>> findExecutableMethod(Class<T> beanType, String method, Class<?>[] arguments)
      Description copied from interface: ExecutionHandleLocator
      Finds an optimized execution handle for invoking a bean method. The execution handle may or may not be implemented by generated byte code.
      Specified by:
      findExecutableMethod in interface ExecutionHandleLocator
      Type Parameters:
      T - The bean type class
      R - The result type of the execution handle
      Parameters:
      beanType - The bean type
      method - The method
      arguments - The arguments
      Returns:
      The execution handle
    • findExecutionHandle

      public <T, R> Optional<MethodExecutionHandle<T,R>> findExecutionHandle(T bean, String method, Class<?>[] arguments)
      Description copied from interface: ExecutionHandleLocator
      Finds an optimized execution handle for invoking a bean method. The execution handle may or may not be implemented by generated byte code.
      Specified by:
      findExecutionHandle in interface ExecutionHandleLocator
      Type Parameters:
      T - The target bean
      R - The result type of the execution handle
      Parameters:
      bean - The bean to invoke the method on
      method - The method
      arguments - The arguments
      Returns:
      The execution handle
    • registerSingleton

      public <T> BeanContext registerSingleton(@NonNull @NonNull Class<T> type, @NonNull T singleton, Qualifier<T> qualifier, boolean inject)
      Description copied from interface: BeanDefinitionRegistry

      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.

      Specified by:
      registerSingleton in interface BeanContext
      Specified by:
      registerSingleton in interface BeanDefinitionRegistry
      Type Parameters:
      T - The concrete type
      Parameters:
      type - The bean type
      singleton - The singleton bean
      qualifier - The bean qualifier
      inject - Whether the singleton should be injected (defaults to true)
      Returns:
      This bean context
    • getClassLoader

      public ClassLoader getClassLoader()
      Specified by:
      getClassLoader in interface BeanContext
      Returns:
      The class loader used by this context
    • getBeanValidator

      public BeanDefinitionValidator getBeanValidator()
      Specified by:
      getBeanValidator in interface BeanContext
      Returns:
      Get the configured bean validator, if any.
    • findBeanConfiguration

      public Optional<BeanConfiguration> findBeanConfiguration(String configurationName)
      Description copied from interface: BeanDefinitionRegistry
      Obtain a bean configuration by name.
      Specified by:
      findBeanConfiguration in interface BeanDefinitionRegistry
      Parameters:
      configurationName - The configuration name
      Returns:
      An optional with the configuration either present or not
    • getBeanDefinition

      public <T> BeanDefinition<T> getBeanDefinition(io.micronaut.core.type.Argument<T> beanType, Qualifier<T> qualifier)
      Description copied from interface: BeanDefinitionRegistry
      Obtain a BeanDefinition for the given type.
      Specified by:
      getBeanDefinition in interface BeanDefinitionRegistry
      Type Parameters:
      T - The concrete type
      Parameters:
      beanType - The potentially parameterized type
      qualifier - The qualifier
      Returns:
      The BeanDefinition
    • findBeanDefinition

      public <T> Optional<BeanDefinition<T>> findBeanDefinition(io.micronaut.core.type.Argument<T> beanType, Qualifier<T> qualifier)
      Description copied from interface: BeanDefinitionRegistry
      Obtain a BeanDefinition for the given type.
      Specified by:
      findBeanDefinition in interface BeanDefinitionRegistry
      Type Parameters:
      T - The concrete type
      Parameters:
      beanType - The potentially parameterized type
      qualifier - The qualifier
      Returns:
      An Optional of the bean definition
    • findBeanDefinition

      public <T> Optional<BeanDefinition<T>> findBeanDefinition(Class<T> beanType, Qualifier<T> qualifier)
      Description copied from interface: BeanDefinitionRegistry
      Obtain a BeanDefinition for the given type.
      Specified by:
      findBeanDefinition in interface BeanDefinitionRegistry
      Type Parameters:
      T - The concrete type
      Parameters:
      beanType - The type
      qualifier - The qualifier
      Returns:
      An Optional of the bean definition
    • getBeanDefinitions

      public <T> Collection<BeanDefinition<T>> getBeanDefinitions(Class<T> beanType)
      Description copied from interface: BeanDefinitionRegistry
      Obtain a BeanDefinition for the given type.
      Specified by:
      getBeanDefinitions in interface BeanDefinitionRegistry
      Type Parameters:
      T - The concrete type
      Parameters:
      beanType - The type
      Returns:
      An Optional of the bean definition
    • getBeanDefinitions

      public <T> Collection<BeanDefinition<T>> getBeanDefinitions(io.micronaut.core.type.Argument<T> beanType)
      Description copied from interface: BeanDefinitionRegistry
      Obtain a BeanDefinition for the given type.
      Specified by:
      getBeanDefinitions in interface BeanDefinitionRegistry
      Type Parameters:
      T - The concrete type
      Parameters:
      beanType - The type
      Returns:
      An Optional of the bean definition
    • getBeanDefinitions

      public <T> Collection<BeanDefinition<T>> getBeanDefinitions(Class<T> beanType, Qualifier<T> qualifier)
      Description copied from interface: BeanDefinitionRegistry
      Obtain a BeanDefinition for the given type.
      Specified by:
      getBeanDefinitions in interface BeanDefinitionRegistry
      Type Parameters:
      T - The concrete type
      Parameters:
      beanType - The type
      qualifier - The qualifier
      Returns:
      An Optional of the bean definition
    • getBeanDefinitions

      public <T> Collection<BeanDefinition<T>> getBeanDefinitions(io.micronaut.core.type.Argument<T> beanType, Qualifier<T> qualifier)
      Description copied from interface: BeanDefinitionRegistry
      Obtain a BeanDefinition for the given type.
      Specified by:
      getBeanDefinitions in interface BeanDefinitionRegistry
      Type Parameters:
      T - The concrete type
      Parameters:
      beanType - The type
      qualifier - The qualifier
      Returns:
      An Optional of the bean definition
    • containsBean

      public <T> boolean containsBean(@NonNull @NonNull Class<T> beanType, Qualifier<T> qualifier)
      Description copied from interface: BeanDefinitionRegistry
      Return whether the bean of the given type is contained within this context.
      Specified by:
      containsBean in interface BeanDefinitionRegistry
      Type Parameters:
      T - The concrete type
      Parameters:
      beanType - The bean type
      qualifier - The qualifier for the bean
      Returns:
      True if it is
    • containsBean

      public <T> boolean containsBean(io.micronaut.core.type.Argument<T> beanType, Qualifier<T> qualifier)
      Description copied from interface: BeanDefinitionRegistry
      Return whether the bean of the given type is contained within this context.
      Specified by:
      containsBean in interface BeanDefinitionRegistry
      Type Parameters:
      T - The concrete type
      Parameters:
      beanType - The bean type
      qualifier - The qualifier for the bean
      Returns:
      True if it is
    • getBean

      @NonNull public <T> T getBean(@NonNull @NonNull Class<T> beanType, @Nullable @Nullable Qualifier<T> qualifier)
      Description copied from interface: BeanLocator
      Obtains a Bean for the given type and qualifier.
      Specified by:
      getBean in interface BeanLocator
      Type Parameters:
      T - The bean type parameter
      Parameters:
      beanType - The bean type
      qualifier - The qualifier
      Returns:
      An instanceof said bean
      See Also:
    • getBean

      @NonNull public <T> T getBean(@NonNull @NonNull Class<T> beanType)
      Description copied from interface: BeanLocator
      Obtains a Bean for the given type.
      Specified by:
      getBean in interface BeanLocator
      Type Parameters:
      T - The bean type parameter
      Parameters:
      beanType - The bean type
      Returns:
      An instanceof said bean
    • getBean

      @NonNull public <T> T getBean(@NonNull @NonNull io.micronaut.core.type.Argument<T> beanType, @Nullable @Nullable Qualifier<T> qualifier)
      Description copied from interface: BeanLocator
      Obtains a Bean for the given type and qualifier.
      Specified by:
      getBean in interface BeanLocator
      Type Parameters:
      T - The bean type parameter
      Parameters:
      beanType - The potentially parameterized bean type
      qualifier - The qualifier
      Returns:
      An instanceof said bean
      See Also:
    • findBean

      public <T> Optional<T> findBean(Class<T> beanType, Qualifier<T> qualifier)
      Description copied from interface: BeanLocator
      Finds a Bean for the given type and qualifier.
      Specified by:
      findBean in interface BeanLocator
      Type Parameters:
      T - The bean type parameter
      Parameters:
      beanType - The bean type
      qualifier - The qualifier
      Returns:
      An instance of Optional that is either empty or containing the specified bean
      See Also:
    • findBean

      public <T> Optional<T> findBean(io.micronaut.core.type.Argument<T> beanType, Qualifier<T> qualifier)
      Description copied from interface: BeanLocator
      Finds a Bean for the given type and qualifier.
      Specified by:
      findBean in interface BeanLocator
      Type Parameters:
      T - The bean type parameter
      Parameters:
      beanType - The bean type
      qualifier - The qualifier
      Returns:
      An instance of Optional that is either empty or containing the specified bean
      See Also:
    • getBeansOfType

      public <T> Collection<T> getBeansOfType(Class<T> beanType)
      Description copied from interface: BeanLocator
      Get all beans of the given type.
      Specified by:
      getBeansOfType in interface BeanLocator
      Type Parameters:
      T - The bean type parameter
      Parameters:
      beanType - The bean type
      Returns:
      The found beans
    • getBeansOfType

      public <T> Collection<T> getBeansOfType(Class<T> beanType, Qualifier<T> qualifier)
      Description copied from interface: BeanLocator
      Get all beans of the given type.
      Specified by:
      getBeansOfType in interface BeanLocator
      Type Parameters:
      T - The bean type parameter
      Parameters:
      beanType - The bean type
      qualifier - The qualifier
      Returns:
      The found beans
    • getBeansOfType

      public <T> Collection<T> getBeansOfType(io.micronaut.core.type.Argument<T> beanType)
      Description copied from interface: BeanLocator
      Get all beans of the given type.
      Specified by:
      getBeansOfType in interface BeanLocator
      Type Parameters:
      T - The bean type parameter
      Parameters:
      beanType - The potenitally parameterized bean type
      Returns:
      The found beans
    • getBeansOfType

      public <T> Collection<T> getBeansOfType(io.micronaut.core.type.Argument<T> beanType, Qualifier<T> qualifier)
      Description copied from interface: BeanLocator
      Get all beans of the given type.
      Specified by:
      getBeansOfType in interface BeanLocator
      Type Parameters:
      T - The bean type parameter
      Parameters:
      beanType - The potenitally parameterized bean type
      qualifier - The qualifier
      Returns:
      The found beans
    • streamOfType

      public <T> Stream<T> streamOfType(Class<T> beanType, Qualifier<T> qualifier)
      Description copied from interface: BeanLocator
      Obtain a stream of beans of the given type.
      Specified by:
      streamOfType in interface BeanLocator
      Type Parameters:
      T - The bean concrete type
      Parameters:
      beanType - The bean type
      qualifier - The qualifier
      Returns:
      A stream of instances
      See Also:
    • streamOfType

      public <T> Stream<T> streamOfType(io.micronaut.core.type.Argument<T> beanType, Qualifier<T> qualifier)
      Description copied from interface: BeanLocator
      Obtain a stream of beans of the given type.
      Specified by:
      streamOfType in interface BeanLocator
      Type Parameters:
      T - The bean concrete type
      Parameters:
      beanType - The potentially parameterized bean type
      qualifier - The qualifier
      Returns:
      A stream of instances
      See Also:
    • mapOfType

      public <V> Map<String,V> mapOfType(io.micronaut.core.type.Argument<V> beanType, Qualifier<V> qualifier)
      Description copied from interface: BeanLocator
      Obtain a map of beans of the given type where the key is the qualifier.
      Specified by:
      mapOfType in interface BeanLocator
      Type Parameters:
      V - The bean concrete type
      Parameters:
      beanType - The potentially parameterized bean type
      qualifier - The qualifier
      Returns:
      A map of instances
      See Also:
    • streamOfType

      protected <T> Stream<T> streamOfType(BeanResolutionContext resolutionContext, Class<T> beanType, Qualifier<T> qualifier)
      Obtains a stream of beans of the given type and qualifier.
      Type Parameters:
      T - The bean concrete type
      Parameters:
      resolutionContext - The bean resolution context
      beanType - The bean type
      qualifier - The qualifier
      Returns:
      A stream
    • mapOfType

      @NonNull protected <V> @NonNull Map<String,V> mapOfType(@Nullable @Nullable BeanResolutionContext resolutionContext, @NonNull @NonNull io.micronaut.core.type.Argument<V> beanType, @Nullable @Nullable Qualifier<V> qualifier)
      Obtains a map of beans of the given type and qualifier.
      Type Parameters:
      V - The bean type
      Parameters:
      resolutionContext - The resolution context
      beanType - The bean type
      qualifier - The qualifier
      Returns:
      A map of beans, never null.
      Since:
      4.0.0
    • streamOfType

      @Internal public <T> Stream<T> streamOfType(BeanResolutionContext resolutionContext, io.micronaut.core.type.Argument<T> beanType, Qualifier<T> qualifier)
      Obtains a stream of beans of the given type and qualifier.
      Type Parameters:
      T - The bean concrete type
      Parameters:
      resolutionContext - The bean resolution context
      beanType - The bean type
      qualifier - The qualifier
      Returns:
      A stream
    • inject

      @NonNull public <T> T inject(@NonNull T instance)
      Description copied from interface: BeanContext
      Inject an existing instance.
      Specified by:
      inject in interface BeanContext
      Type Parameters:
      T - The bean generic type
      Parameters:
      instance - The instance to inject
      Returns:
      The instance to inject
    • createBean

      @NonNull public <T> T createBean(@NonNull @NonNull Class<T> beanType, @Nullable @Nullable Qualifier<T> qualifier)
      Description copied from interface: BeanContext
      Creates a new instance of the given bean performing dependency injection and returning a new instance.

      Note that the instance returned is not saved as a singleton in the context.

      Specified by:
      createBean in interface BeanContext
      Type Parameters:
      T - The bean generic type
      Parameters:
      beanType - The bean type
      qualifier - The qualifier
      Returns:
      The instance
    • createBean

      @NonNull public <T> T createBean(@NonNull @NonNull Class<T> beanType, @Nullable @Nullable Qualifier<T> qualifier, @Nullable @Nullable Map<String,Object> argumentValues)
      Description copied from interface: BeanContext

      Creates a new instance of the given bean performing dependency injection and returning a new instance.

      If the bean defines any Parameter values then the values passed in the argumentValues parameter will be used

      Note that the instance returned is not saved as a singleton in the context.

      Specified by:
      createBean in interface BeanContext
      Type Parameters:
      T - The bean generic type
      Parameters:
      beanType - The bean type
      qualifier - The qualifier
      argumentValues - The argument values
      Returns:
      The instance
    • createBean

      @NonNull public <T> T createBean(@NonNull @NonNull Class<T> beanType, @Nullable @Nullable Qualifier<T> qualifier, @Nullable @Nullable Object... args)
      Description copied from interface: BeanContext

      Creates a new instance of the given bean performing dependency injection and returning a new instance.

      If the bean defines any Parameter values then the values passed in the argumentValues parameter will be used

      Note that the instance returned is not saved as a singleton in the context.

      Specified by:
      createBean in interface BeanContext
      Type Parameters:
      T - The bean generic type
      Parameters:
      beanType - The bean type
      qualifier - The qualifier
      args - The argument values
      Returns:
      The instance
    • destroyBean

      @Nullable public <T> T destroyBean(@NonNull @NonNull io.micronaut.core.type.Argument<T> beanType, Qualifier<T> qualifier)
      Description copied from interface: BeanContext
      Destroys the bean for the given type causing it to be re-created. If a singleton has been loaded it will be destroyed and removed from the context, otherwise null will be returned.
      Specified by:
      destroyBean in interface BeanContext
      Type Parameters:
      T - The concrete class
      Parameters:
      beanType - The bean type
      qualifier - The qualifier
      Returns:
      The destroy instance or null if no such bean exists
    • destroyBean

      @NonNull public <T> T destroyBean(@NonNull T bean)
      Description copied from interface: BeanContext
      Destroys the given bean.
      Specified by:
      destroyBean in interface BeanContext
      Type Parameters:
      T - The concrete class
      Parameters:
      bean - The bean
      Returns:
      The destroy instance
    • destroyBean

      @Nullable public <T> T destroyBean(@NonNull @NonNull Class<T> beanType)
      Description copied from interface: BeanContext
      Destroys the bean for the given type causing it to be re-created. If a singleton has been loaded it will be destroyed and removed from the context, otherwise null will be returned.
      Specified by:
      destroyBean in interface BeanContext
      Type Parameters:
      T - The concrete class
      Parameters:
      beanType - The bean type
      Returns:
      The destroy instance or null if no such bean exists
    • destroyBean

      public <T> void destroyBean(@NonNull @NonNull BeanRegistration<T> registration)
      Description copied from interface: BeanContext
      Destroys the given bean.
      Specified by:
      destroyBean in interface BeanContext
      Type Parameters:
      T - The bean type
      Parameters:
      registration - The bean registration
    • getActiveBeanRegistration

      @Nullable protected <T> @Nullable BeanRegistration<T> getActiveBeanRegistration(BeanDefinition<T> beanDefinition, Qualifier qualifier)
      Find an active singleton bean for the given definition and qualifier.
      Type Parameters:
      T - The bean generic type
      Parameters:
      beanDefinition - The bean definition
      qualifier - The qualifier
      Returns:
      The bean registration
    • createBean

      @NonNull protected <T> T createBean(@Nullable @Nullable BeanResolutionContext resolutionContext, @NonNull @NonNull Class<T> beanType, @Nullable @Nullable Qualifier<T> qualifier)
      Creates a bean.
      Type Parameters:
      T - The bean generic type
      Parameters:
      resolutionContext - The bean resolution context
      beanType - The bean type
      qualifier - The qualifier
      Returns:
      The instance
    • inject

      @Internal @NonNull protected <T> T inject(@NonNull @NonNull BeanResolutionContext resolutionContext, @Nullable @Nullable BeanDefinition<?> requestingBeanDefinition, @NonNull T instance)
      Injects a bean.
      Type Parameters:
      T - The instance type
      Parameters:
      resolutionContext - The bean resolution context
      requestingBeanDefinition - The requesting bean definition
      instance - The instance
      Returns:
      The instance
    • getBeansOfType

      @NonNull protected <T> @NonNull Collection<T> getBeansOfType(@Nullable @Nullable BeanResolutionContext resolutionContext, @NonNull @NonNull io.micronaut.core.type.Argument<T> beanType)
      Get all beans of the given type.
      Type Parameters:
      T - The bean type parameter
      Parameters:
      resolutionContext - The bean resolution context
      beanType - The bean type
      Returns:
      The found beans
    • getBeansOfType

      @Internal @NonNull public <T> @NonNull Collection<T> getBeansOfType(@Nullable @Nullable BeanResolutionContext resolutionContext, @NonNull @NonNull io.micronaut.core.type.Argument<T> beanType, @Nullable @Nullable Qualifier<T> qualifier)
      Get all beans of the given type and qualifier.
      Type Parameters:
      T - The bean type parameter
      Parameters:
      resolutionContext - The bean resolution context
      beanType - The bean type
      qualifier - The qualifier
      Returns:
      The found beans
    • getProxyTargetBean

      @NonNull public <T> T getProxyTargetBean(@NonNull @NonNull Class<T> beanType, @Nullable @Nullable Qualifier<T> qualifier)
      Description copied from interface: BeanLocator
      Resolves the proxy target for a given bean type. If the bean has no proxy then the original bean is returned.
      Specified by:
      getProxyTargetBean in interface BeanLocator
      Type Parameters:
      T - The generic type
      Parameters:
      beanType - The bean type
      qualifier - The bean qualifier
      Returns:
      The proxied instance
    • getProxyTargetBean

      @NonNull public <T> T getProxyTargetBean(@NonNull @NonNull io.micronaut.core.type.Argument<T> beanType, @Nullable @Nullable Qualifier<T> qualifier)
      Description copied from interface: BeanLocator
      Resolves the proxy target for a given bean type. If the bean has no proxy then the original bean is returned.
      Specified by:
      getProxyTargetBean in interface BeanLocator
      Type Parameters:
      T - The generic type
      Parameters:
      beanType - The bean type
      qualifier - The bean qualifier
      Returns:
      The proxied instance
    • getProxyTargetBean

      @NonNull public <T> T getProxyTargetBean(@Nullable @Nullable BeanResolutionContext resolutionContext, @NonNull @NonNull io.micronaut.core.type.Argument<T> beanType, @Nullable @Nullable Qualifier<T> qualifier)
      Resolves the proxy target for a given bean type. If the bean has no proxy then the original bean is returned.
      Type Parameters:
      T - The generic type
      Parameters:
      resolutionContext - The bean resolution context
      beanType - The bean type
      qualifier - The bean qualifier
      Returns:
      The proxied instance
      Since:
      3.1.0
    • getProxyTargetBean

      @Internal @NonNull public <T> T getProxyTargetBean(@Nullable @Nullable BeanResolutionContext resolutionContext, @NonNull @NonNull BeanDefinition<T> definition, @NonNull @NonNull io.micronaut.core.type.Argument<T> beanType, @Nullable @Nullable Qualifier<T> qualifier)
      Resolves the proxy target for a given proxy bean definition. If the bean has no proxy then the original bean is returned.
      Type Parameters:
      T - The generic type
      Parameters:
      resolutionContext - The bean resolution context
      definition - The proxy bean definition
      beanType - The bean type
      qualifier - The bean qualifier
      Returns:
      The proxied instance
      Since:
      4.3.0
    • findProxyTargetMethod

      @NonNull public <T, R> @NonNull Optional<ExecutableMethod<T,R>> findProxyTargetMethod(@NonNull @NonNull Class<T> beanType, @NonNull @NonNull String method, @NonNull @NonNull Class<?>[] arguments)
      Description copied from interface: ExecutionHandleLocator
      Finds the original unproxied method for a ProxyBeanDefinition.
      Specified by:
      findProxyTargetMethod in interface ExecutionHandleLocator
      Type Parameters:
      T - The bean type class
      R - The result type of the execution handle
      Parameters:
      beanType - The bean type
      method - The method
      arguments - The arguments
      Returns:
      The execution handle
    • findProxyTargetMethod

      @NonNull public <T, R> @NonNull Optional<ExecutableMethod<T,R>> findProxyTargetMethod(@NonNull @NonNull Class<T> beanType, Qualifier<T> qualifier, @NonNull @NonNull String method, Class<?>... arguments)
      Description copied from interface: ExecutionHandleLocator
      Finds the original unproxied method for a ProxyBeanDefinition.
      Specified by:
      findProxyTargetMethod in interface ExecutionHandleLocator
      Type Parameters:
      T - The bean type class
      R - The result type of the execution handle
      Parameters:
      beanType - The bean type
      qualifier - The qualifier
      method - The method
      arguments - The arguments
      Returns:
      The execution handle
    • findProxyTargetMethod

      public <T, R> Optional<ExecutableMethod<T,R>> findProxyTargetMethod(@NonNull @NonNull io.micronaut.core.type.Argument<T> beanType, Qualifier<T> qualifier, @NonNull @NonNull String method, Class<?>... arguments)
      Description copied from interface: ExecutionHandleLocator
      Finds the original unproxied method for a ProxyBeanDefinition.
      Specified by:
      findProxyTargetMethod in interface ExecutionHandleLocator
      Type Parameters:
      T - The bean type class
      R - The result type of the execution handle
      Parameters:
      beanType - The bean type
      qualifier - The qualifier
      method - The method
      arguments - The arguments
      Returns:
      The execution handle
    • findProxyTargetBeanDefinition

      @NonNull public <T> @NonNull Optional<BeanDefinition<T>> findProxyTargetBeanDefinition(@NonNull @NonNull Class<T> beanType, @Nullable @Nullable Qualifier<T> qualifier)
      Description copied from interface: BeanDefinitionRegistry
      Obtain the original BeanDefinition for a ProxyBeanDefinition.
      Specified by:
      findProxyTargetBeanDefinition in interface BeanDefinitionRegistry
      Type Parameters:
      T - The concrete type
      Parameters:
      beanType - The type
      qualifier - The qualifier
      Returns:
      An Optional of the bean definition
    • findProxyTargetBeanDefinition

      public <T> Optional<BeanDefinition<T>> findProxyTargetBeanDefinition(@NonNull @NonNull io.micronaut.core.type.Argument<T> beanType, @Nullable @Nullable Qualifier<T> qualifier)
      Description copied from interface: BeanDefinitionRegistry
      Obtain the original BeanDefinition for a ProxyBeanDefinition.
      Specified by:
      findProxyTargetBeanDefinition in interface BeanDefinitionRegistry
      Type Parameters:
      T - The concrete type
      Parameters:
      beanType - The type
      qualifier - The qualifier
      Returns:
      An Optional of the bean definition
    • getBeanDefinitions

      @NonNull public @NonNull Collection<BeanDefinition<?>> getBeanDefinitions(@Nullable @Nullable Qualifier<Object> qualifier)
      Description copied from interface: BeanDefinitionRegistry
      Get all of the BeanDefinition for the given qualifier.
      Specified by:
      getBeanDefinitions in interface BeanDefinitionRegistry
      Parameters:
      qualifier - The qualifier
      Returns:
      The bean definitions
    • getAllBeanDefinitions

      @NonNull public @NonNull Collection<BeanDefinition<?>> getAllBeanDefinitions()
      Description copied from interface: BeanDefinitionRegistry
      Get all registered BeanDefinition.
      Specified by:
      getAllBeanDefinitions in interface BeanDefinitionRegistry
      Returns:
      The bean definitions
    • getDisabledBeans

      public Collection<DisabledBean<?>> getDisabledBeans()
      Description copied from interface: BeanDefinitionRegistry
      Get all disabled DisabledBean.
      Specified by:
      getDisabledBeans in interface BeanDefinitionRegistry
      Returns:
      The disabled bean definitions
    • getBeanDefinitionReferences

      @NonNull public @NonNull Collection<BeanDefinitionReference<?>> getBeanDefinitionReferences()
      Description copied from interface: BeanDefinitionRegistry
      Get all enabled BeanDefinitionReference.
      Specified by:
      getBeanDefinitionReferences in interface BeanDefinitionRegistry
      Returns:
      The bean definitions
    • registerBeanDefinition

      @NonNull public <B> @NonNull BeanContext registerBeanDefinition(@NonNull @NonNull RuntimeBeanDefinition<B> definition)
      Description copied from interface: BeanDefinitionRegistry
      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 priority Context scope bean.
      Specified by:
      registerBeanDefinition in interface BeanDefinitionRegistry
      Type Parameters:
      B - The bean type
      Parameters:
      definition - The reference.
      Returns:
      The registry
    • getBean

      @NonNull public <T> T getBean(@Nullable @Nullable BeanResolutionContext resolutionContext, @NonNull @NonNull Class<T> beanType)
      Get a bean of the given type.
      Type Parameters:
      T - The bean type parameter
      Parameters:
      resolutionContext - The bean context resolution
      beanType - The bean type
      Returns:
      The found bean
    • getBean

      @NonNull public <T> T getBean(@NonNull @NonNull BeanDefinition<T> definition)
      Description copied from interface: BeanLocator
      Obtains a Bean for the given bean definition.
      Specified by:
      getBean in interface BeanLocator
      Type Parameters:
      T - The bean type parameter
      Parameters:
      definition - The bean type
      Returns:
      An instanceof said bean
      See Also:
    • getBean

      @NonNull public <T> T getBean(@Nullable @Nullable BeanResolutionContext resolutionContext, @NonNull @NonNull Class<T> beanType, @Nullable @Nullable Qualifier<T> qualifier)
      Get a bean of the given type and qualifier.
      Type Parameters:
      T - The bean type parameter
      Parameters:
      resolutionContext - The bean context resolution
      beanType - The bean type
      qualifier - The qualifier
      Returns:
      The found bean
    • getBean

      @NonNull public <T> T getBean(@Nullable @Nullable BeanResolutionContext resolutionContext, @NonNull @NonNull io.micronaut.core.type.Argument<T> beanType, @Nullable @Nullable Qualifier<T> qualifier)
      Get a bean of the given type and qualifier.
      Type Parameters:
      T - The bean type parameter
      Parameters:
      resolutionContext - The bean context resolution
      beanType - The bean type
      qualifier - The qualifier
      Returns:
      The found bean
      Since:
      3.0.0
    • getBean

      @Internal @NonNull public <T> T getBean(@Nullable @Nullable BeanResolutionContext resolutionContext, @NonNull @NonNull BeanDefinition<T> beanDefinition, @NonNull @NonNull io.micronaut.core.type.Argument<T> beanType, @Nullable @Nullable Qualifier<T> qualifier)
      Get a bean of the given bean definition, type and qualifier.
      Type Parameters:
      T - The bean type parameter
      Parameters:
      resolutionContext - The bean context resolution
      beanDefinition - The bean definition
      beanType - The bean type
      qualifier - The qualifier
      Returns:
      The found bean
      Since:
      3.5.0
    • findBean

      @NonNull public <T> @NonNull Optional<T> findBean(@Nullable @Nullable BeanResolutionContext resolutionContext, @NonNull @NonNull Class<T> beanType, @Nullable @Nullable Qualifier<T> qualifier)
      Find an optional bean of the given type and qualifier.
      Type Parameters:
      T - The bean type parameter
      Parameters:
      resolutionContext - The bean context resolution
      beanType - The bean type
      qualifier - The qualifier
      Returns:
      The found bean wrapped as an Optional
    • findBean

      @Internal @NonNull public <T> @NonNull Optional<T> findBean(@Nullable @Nullable BeanResolutionContext resolutionContext, @NonNull @NonNull io.micronaut.core.type.Argument<T> beanType, @Nullable @Nullable Qualifier<T> qualifier)
      Find an optional bean of the given type and qualifier.
      Type Parameters:
      T - The bean type parameter
      Parameters:
      resolutionContext - The bean context resolution
      beanType - The bean type
      qualifier - The qualifier
      Returns:
      The found bean wrapped as an Optional
      Since:
      3.0.0
    • getContextConfiguration

      public BeanContextConfiguration getContextConfiguration()
      Description copied from interface: BeanContext
      Obtains the configuration for this context.
      Specified by:
      getContextConfiguration in interface BeanContext
      Returns:
      The BeanContextConfiguration
    • publishEvent

      public void publishEvent(@NonNull @NonNull Object event)
      Description copied from interface: ApplicationEventPublisher
      Publish the given event. The event will be published synchronously and only return once all listeners have consumed the event.
      Specified by:
      publishEvent in interface ApplicationEventPublisher<Object>
      Parameters:
      event - The event to publish
    • publishEventAsync

      @NonNull public @NonNull Future<Void> publishEventAsync(@NonNull @NonNull Object event)
      Description copied from interface: ApplicationEventPublisher
      Publish the given event. The event will be published asynchronously. A future is returned that can be used to check whether the event completed successfully or not.
      Specified by:
      publishEventAsync in interface ApplicationEventPublisher<Object>
      Parameters:
      event - The event to publish
      Returns:
      A future that completes when the event is published
    • findProxyBeanDefinition

      @NonNull public <T> @NonNull Optional<BeanDefinition<T>> findProxyBeanDefinition(@NonNull @NonNull Class<T> beanType, @Nullable @Nullable Qualifier<T> qualifier)
      Description copied from interface: BeanDefinitionRegistry
      Obtain the proxy BeanDefinition for the bean of type and qualifier.
      Specified by:
      findProxyBeanDefinition in interface BeanDefinitionRegistry
      Type Parameters:
      T - The concrete type
      Parameters:
      beanType - The type
      qualifier - The qualifier
      Returns:
      An Optional of the bean definition
    • findProxyBeanDefinition

      @NonNull public <T> @NonNull Optional<BeanDefinition<T>> findProxyBeanDefinition(@NonNull @NonNull io.micronaut.core.type.Argument<T> beanType, @Nullable @Nullable Qualifier<T> qualifier)
      Description copied from interface: BeanDefinitionRegistry
      Obtain the proxy BeanDefinition for the bean of type and qualifier.
      Specified by:
      findProxyBeanDefinition in interface BeanDefinitionRegistry
      Type Parameters:
      T - The concrete type
      Parameters:
      beanType - The type
      qualifier - The qualifier
      Returns:
      An Optional of the bean definition
    • invalidateCaches

      @Internal protected void invalidateCaches()
      Invalidates the bean caches. For testing only.
    • resolveBeanDefinitionReferences

      @NonNull protected @NonNull List<BeanDefinitionReference> resolveBeanDefinitionReferences()
      Resolves the BeanDefinitionReference class instances. Default implementation uses ServiceLoader pattern.
      Returns:
      The bean definition classes
    • resolveBeanDefinitionReferences

      @NonNull @Deprecated protected @NonNull List<BeanDefinitionReference> resolveBeanDefinitionReferences(@Nullable @Nullable Predicate<BeanDefinitionReference> predicate)
      Deprecated.
      Resolves the BeanDefinitionReference class instances. Default implementation uses ServiceLoader pattern.
      Parameters:
      predicate - The filter predicate, can be null
      Returns:
      The bean definition classes
    • resolveBeanConfigurations

      @NonNull protected @NonNull Iterable<BeanConfiguration> resolveBeanConfigurations()
      Resolves the BeanConfiguration class instances. Default implementation uses ServiceLoader pattern.
      Returns:
      The bean definition classes
    • initializeEventListeners

      protected void initializeEventListeners()
      Initialize the event listeners.
    • initializeContext

      @Internal protected void initializeContext(@NonNull @NonNull List<io.micronaut.context.DefaultBeanContext.BeanDefinitionProducer> eagerInitBeans, @NonNull @NonNull List<io.micronaut.context.DefaultBeanContext.BeanDefinitionProducer> processedBeans, @NonNull @NonNull List<io.micronaut.context.DefaultBeanContext.BeanDefinitionProducer> parallelBeans)
      Initialize the context with the given Context scope beans.
      Parameters:
      eagerInitBeans - The context scope beans
      processedBeans - The beans that require ExecutableMethodProcessor handling
      parallelBeans - The parallel bean definitions
    • findBeanCandidates

      @NonNull protected <T> @NonNull Collection<BeanDefinition<T>> findBeanCandidates(@Nullable @Nullable BeanResolutionContext resolutionContext, @NonNull @NonNull io.micronaut.core.type.Argument<T> beanType, @Nullable @Nullable BeanDefinition<?> filter)
      Find bean candidates for the given type.
      Type Parameters:
      T - The bean generic type
      Parameters:
      resolutionContext - The current resolution context
      beanType - The bean type
      filter - A bean definition to filter out
      Returns:
      The candidates
    • findBeanCandidates

      @NonNull protected <T> @NonNull Collection<BeanDefinition<T>> findBeanCandidates(@Nullable @Nullable BeanResolutionContext resolutionContext, @NonNull @NonNull io.micronaut.core.type.Argument<T> beanType, boolean collectIterables, Predicate<BeanDefinition<T>> predicate)
      Find bean candidates for the given type.
      Type Parameters:
      T - The bean generic type
      Parameters:
      resolutionContext - The current resolution context
      beanType - The bean type
      collectIterables - Whether iterables should be collected
      predicate - The predicate to filter candidates
      Returns:
      The candidates
    • collectIterableBeans

      protected <T> void collectIterableBeans(@Nullable @Nullable BeanResolutionContext resolutionContext, @NonNull @NonNull BeanDefinition<T> iterableBean, Set<BeanDefinition<T>> targetSet)
      Collects iterable beans from a given iterable.
      Type Parameters:
      T - The bean type
      Parameters:
      resolutionContext - The resolution context
      iterableBean - The iterable
      targetSet - The target set
    • findBeanCandidatesForInstance

      @NonNull protected <T> @NonNull Collection<BeanDefinition<T>> findBeanCandidatesForInstance(@NonNull T instance)
      Find bean candidates for the given type.
      Type Parameters:
      T - The bean generic type
      Parameters:
      instance - The bean instance
      Returns:
      The candidates
    • registerConfiguration

      protected void registerConfiguration(@NonNull @NonNull BeanConfiguration configuration)
      Registers an active configuration.
      Parameters:
      configuration - The configuration to register
    • findConcreteCandidate

      @NonNull protected <T> @NonNull BeanDefinition<T> findConcreteCandidate(@NonNull @NonNull Class<T> beanType, @Nullable @Nullable Qualifier<T> qualifier, @NonNull @NonNull Collection<BeanDefinition<T>> candidates)
      Fall back method to attempt to find a candidate for the given definitions.
      Type Parameters:
      T - The generic time
      Parameters:
      beanType - The bean type
      qualifier - The qualifier
      candidates - The candidates, always more than 1
      Returns:
      The concrete bean definition
    • processParallelBeans

      @Internal protected void processParallelBeans(List<io.micronaut.context.DefaultBeanContext.BeanDefinitionProducer> parallelBeans)
      Processes parallel bean definitions.
      Parameters:
      parallelBeans - The parallel beans
    • newNoSuchBeanException

      @Internal @NonNull protected <T> @NonNull NoSuchBeanException newNoSuchBeanException(@Nullable @Nullable BeanResolutionContext resolutionContext, @NonNull @NonNull io.micronaut.core.type.Argument<T> beanType, @NonNull @NonNull Qualifier<T> qualifier, @Nullable @Nullable String message)
      Trigger a no such bean exception. Subclasses can improve the exception with downstream diagnosis as necessary.
      Type Parameters:
      T - The type of the bean
      Parameters:
      resolutionContext - The resolution context
      beanType - The bean type
      qualifier - The qualifier
      message - A message to use
      Returns:
      A no such bean exception
    • resolveDisabledBeanMessage

      @Nullable protected <T> @Nullable String resolveDisabledBeanMessage(BeanResolutionContext resolutionContext, io.micronaut.core.type.Argument<T> beanType, Qualifier<T> qualifier)
      Resolves the message to use for a disabled bean.
      Type Parameters:
      T - The bean type
      Parameters:
      resolutionContext - The resolution context
      beanType - The bean type
      qualifier - The qualifier
      Returns:
      The message or null if none exists
    • getBeanRegistration

      @Internal public <T> BeanRegistration<T> getBeanRegistration(@Nullable @Nullable BeanResolutionContext resolutionContext, @NonNull @NonNull io.micronaut.core.type.Argument<T> beanType, @Nullable @Nullable Qualifier<T> qualifier)
      Obtains the bean registration for the given type and qualifier.
      Type Parameters:
      T - The generic type
      Parameters:
      resolutionContext - The resolution context
      beanType - The bean type
      qualifier - The qualifier
      Returns:
      A BeanRegistration
    • getBeanRegistrations

      @Internal public <T> Collection<BeanRegistration<T>> getBeanRegistrations(@Nullable @Nullable BeanResolutionContext resolutionContext, @NonNull @NonNull io.micronaut.core.type.Argument<T> beanType, @Nullable @Nullable Qualifier<T> qualifier)
      Obtains the bean registrations for the given type and qualifier.
      Type Parameters:
      T - The generic type
      Parameters:
      resolutionContext - The resolution context
      beanType - The bean type
      qualifier - The qualifier
      Returns:
      A collection of BeanRegistration
    • getAttributes

      @NonNull public @NonNull io.micronaut.core.convert.value.MutableConvertibleValues<Object> getAttributes()
      Specified by:
      getAttributes in interface io.micronaut.core.attr.AttributeHolder
      Specified by:
      getAttributes in interface io.micronaut.core.attr.MutableAttributeHolder
    • getAttribute

      @NonNull public @NonNull Optional<Object> getAttribute(CharSequence name)
      Specified by:
      getAttribute in interface io.micronaut.core.attr.AttributeHolder
    • getAttribute

      @NonNull public <T> @NonNull Optional<T> getAttribute(CharSequence name, Class<T> type)
      Specified by:
      getAttribute in interface io.micronaut.core.attr.AttributeHolder
    • setAttribute

      @NonNull public @NonNull BeanContext setAttribute(@NonNull @NonNull CharSequence name, @Nullable @Nullable Object value)
      Specified by:
      setAttribute in interface io.micronaut.core.attr.MutableAttributeHolder
    • removeAttribute

      @NonNull public <T> @NonNull Optional<T> removeAttribute(@NonNull @NonNull CharSequence name, @NonNull @NonNull Class<T> type)
      Specified by:
      removeAttribute in interface io.micronaut.core.attr.MutableAttributeHolder
    • finalizeConfiguration

      public void finalizeConfiguration()
      Description copied from interface: InitializableBeanContext
      Performs operations required before starting the application context, such as reading bean configurations.
      Specified by:
      finalizeConfiguration in interface InitializableBeanContext
    • getConversionService

      public io.micronaut.core.convert.MutableConversionService getConversionService()
      Specified by:
      getConversionService in interface io.micronaut.core.convert.ConversionServiceProvider