Package org.jboss.weld.bean
Class ContextualInstanceStrategy<T>
java.lang.Object
org.jboss.weld.bean.ContextualInstanceStrategy<T>
- Type Parameters:
T-
This component allows optimized strategies for obtaining contextual instances of a given bean to be plugged in.
By default a contextual instance of a bean is obtained by first obtaining the context for bean's scope and then by
calling
Context.get(jakarta.enterprise.context.spi.Contextual) or
Context.get(jakarta.enterprise.context.spi.Contextual, CreationalContext)
on the given context. This algorithm matches the defaultStrategy() implementation.
In addition, specialized implementations are provided.
For ApplicationScoped beans a special strategy is used which caches application-scoped bean instances in a volatile
field. This implementation respects
the possibility of an instance being destroyed via AlterableContext and the cached instance is flushed in such case.
For SessionScoped, ConversationScoped and RequestScoped beans a special strategy is used which caches
contextual bean instances in
a ThreadLocal. This implementation respects the possibility of an instance being destroyed via
AlterableContext and the cached instance is
flushed in such case. This is done indirectly by RequestScopedCache.- Author:
- Jozef Hartinger
-
Method Summary
Modifier and TypeMethodDescriptionstatic <T> ContextualInstanceStrategy<T>create(jakarta.enterprise.inject.spi.BeanAttributes<T> bean, BeanManagerImpl manager) static <T> ContextualInstanceStrategy<T>
-
Method Details
-
defaultStrategy
-
create
public static <T> ContextualInstanceStrategy<T> create(jakarta.enterprise.inject.spi.BeanAttributes<T> bean, BeanManagerImpl manager)
-