Package io.quarkus.arc.runtime
Interface BeanContainer
- All Known Implementing Classes:
BeanContainerImpl
public interface BeanContainer
Represents a CDI bean container.
Extensions using this API can also leverage arbitrary methods from running
ArcContainer
which can be obtained by invoking a static method Arc.container().-
Nested Class Summary
Nested ClassesModifier and TypeInterfaceDescriptionstatic interfacestatic interface -
Method Summary
Modifier and TypeMethodDescription<T> TbeanInstance(Class<T> beanType, Annotation... beanQualifiers) Resolves a bean instance for given bean type and qualifiers.<T> BeanContainer.Factory<T> beanInstanceFactory(Class<T> type, Annotation... qualifiers) Returns an instance factory for given bean type and qualifiers.<T> BeanContainer.Factory<T> beanInstanceFactory(Supplier<BeanContainer.Factory<T>> fallbackSupplier, Class<T> type, Annotation... qualifiers) Returns an instance factory for given bean type and qualifiers.io.quarkus.arc.ManagedContextManagedContext requestContext = beanContainer.requestContext(); if (requestContext.isActive()) { // Perform action } else { try { requestContext.activate(); // Perform action } finally { requestContext.terminate(); } }
-
Method Details
-
beanInstance
Resolves a bean instance for given bean type and qualifiers. Performs standard CDI resolution meaning it either returns a bean instance or throws a corresponding exception if the dependency is either unsatisfied or ambiguous.- Parameters:
beanType- type of the beanbeanQualifiers- bean qualifiers- Returns:
- a bean instance; never
null
-
beanInstanceFactory
Returns an instance factory for given bean type and qualifiers. This method performs CDI ambiguous dependency resolution and throws and exception if there are two or more beans with given type and qualifiers. If no matching bean is found, uses a default fallback factory that will attempt to instantiate a non-CDI object of the given class via no-args constructor. If you need custom factory behavior, take a look atbeanInstanceFactory(Supplier, Class, Annotation...)- Parameters:
type- bean typequalifiers- bean qualifiers- Returns:
- a bean instance factory, never
null
-
beanInstanceFactory
<T> BeanContainer.Factory<T> beanInstanceFactory(Supplier<BeanContainer.Factory<T>> fallbackSupplier, Class<T> type, Annotation... qualifiers) Returns an instance factory for given bean type and qualifiers. This method performs CDI ambiguous dependency resolution and throws and exception if there are two or more beans with given type and qualifiers. If no matching bean is found, delegates all calls to the supplied factory fallback.- Parameters:
fallbackSupplier- supplier to delegate to if there is no beantype- bean typequalifiers- bean qualifiers- Returns:
- a bean instance factory, never
null
-
requestContext
io.quarkus.arc.ManagedContext requestContext()ManagedContext requestContext = beanContainer.requestContext(); if (requestContext.isActive()) { // Perform action } else { try { requestContext.activate(); // Perform action } finally { requestContext.terminate(); } }- Returns:
- the context for
RequestScoped - Throws:
IllegalStateException- If the container is not running
-