Specifies that a bean is application scoped.
The application scope is active:
- during the service() method of any servlet in
the web application, during the doFilter() method of
any servlet filter and when the container calls any
ServletContextListener, HttpSessionListener,
AsyncListener or ServletRequestListener,
- during any Java EE web service invocation,
- during any asynchronous observer method notification,
- 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,
- during any message delivery to a MessageListener
for a JMS topic or queue obtained from the Java EE component
environment, and
- when the disposer method or @PreDestroy callback of
any bean with any normal scope other than @ApplicationScoped
is called.
The application context is shared between all servlet
requests, asynchronous observer method notifications, 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.