Annotation Interface ApplicationScoped
Specifies that a bean is application scoped.
While ApplicationScoped
must be associated with the built-in application context required by the specification,
third-party extensions are
allowed to also associate it with their own context. Behavior described below is only related to the built-in application context.
The application scope is active:
- during the
service()
method of any servlet in the web application, during thedoFilter()
method of any servlet filter and when the container calls anyServletContextListener
,HttpSessionListener
,AsyncListener
orServletRequestListener
, - during any Java EE web service invocation,
- during any remote method invocation of any EJB, during any asynchronous method invocation of any EJB, during any call to an EJB timeout method and during message delivery to any EJB message-driven bean,
- when the disposer method or
@PreDestroy
callback of any bean with any normal scope other than@ApplicationScoped
is called, and - during
@PostConstruct
callback of any bean.
The application context is shared between all servlet requests, web service invocations, EJB remote method invocations, EJB asynchronous method invocations, EJB timeouts and message deliveries to message-driven beans that execute within the same application.
The application context is destroyed when the application is shut down.
An event with qualifier @Initialized(ApplicationScoped.class)
is fired when the application context is initialized
and an event with qualifier @Destroyed(ApplicationScoped.class)
when the application context is destroyed.
The event payload is:
- the
ServletContext
if the application is a web application deployed to a Servlet container, or - any
java.lang.Object
for other types of application.
- Author:
- Gavin King, Pete Muir, Antoine Sabot-Durand
-
Nested Class Summary
Modifier and TypeClassDescriptionstatic final class
Supports inline instantiation of theApplicationScoped
annotation.