ApplicationScoped
Date: 2015-09-11

javax.enterprise.context

## Annotation Type ApplicationScoped

-     @Target(value={TYPE,METHOD,FIELD})
      @Retention(value=RUNTIME)
      @Documented
      @NormalScope
      @Inherited
      public @interface ApplicationScoped

  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.