Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  * JBoss, Home of Professional Open Source
  * Copyright 2010, Red Hat, Inc., and individual contributors
  * by the @authors tag. See the copyright.txt in the distribution for a
  * full listing of individual contributors.
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,  
 * See the License for the specific language governing permissions and
 * limitations under the License.
package javax.enterprise.context;
import static java.lang.annotation.ElementType.FIELD;
import static java.lang.annotation.ElementType.METHOD;
import static java.lang.annotation.ElementType.TYPE;
import static java.lang.annotation.RetentionPolicy.RUNTIME;

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 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 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.

Gavin King
Pete Muir
Antoine Sabot-Durand
public @interface ApplicationScoped {
New to GrepCode? Check out our FAQ X