< prev index next >

src/java.annotations.common/share/classes/javax/annotation/PostConstruct.java

Print this page




  22  * or visit www.oracle.com if you need additional information or have any
  23  * questions.
  24  */
  25 
  26 package javax.annotation;
  27 
  28 import java.lang.annotation.*;
  29 import static java.lang.annotation.ElementType.*;
  30 import static java.lang.annotation.RetentionPolicy.*;
  31 
  32 /**
  33  * The PostConstruct annotation is used on a method that needs to be executed
  34  * after dependency injection is done to perform any initialization. This
  35  * method MUST be invoked before the class is put into service. This
  36  * annotation MUST be supported on all classes that support dependency
  37  * injection. The method annotated with PostConstruct MUST be invoked even
  38  * if the class does not request any resources to be injected. Only one
  39  * method can be annotated with this annotation. The method on which the
  40  * PostConstruct annotation is applied MUST fulfill all of the following
  41  * criteria:
  42  * <p>
  43  * <ul>
  44  * <li>The method MUST NOT have any parameters except in the case of
  45  * interceptors in which case it takes an InvocationContext object as
  46  * defined by the Interceptors specification.</li>
  47  * <li>The method defined on an interceptor class MUST HAVE one of the
  48  * following signatures:
  49  * <p>
  50  * void <METHOD>(InvocationContext)
  51  * <p>
  52  * Object <METHOD>(InvocationContext) throws Exception
  53  * <p>
  54  * <i>Note: A PostConstruct interceptor method must not throw application
  55  * exceptions, but it may be declared to throw checked exceptions including
  56  * the java.lang.Exception if the same interceptor method interposes on
  57  * business or timeout methods in addition to lifecycle events. If a
  58  * PostConstruct interceptor method returns a value, it is ignored by
  59  * the container.</i>
  60  * </li>
  61  * <li>The method defined on a non-interceptor class MUST HAVE the
  62  * following signature:


  22  * or visit www.oracle.com if you need additional information or have any
  23  * questions.
  24  */
  25 
  26 package javax.annotation;
  27 
  28 import java.lang.annotation.*;
  29 import static java.lang.annotation.ElementType.*;
  30 import static java.lang.annotation.RetentionPolicy.*;
  31 
  32 /**
  33  * The PostConstruct annotation is used on a method that needs to be executed
  34  * after dependency injection is done to perform any initialization. This
  35  * method MUST be invoked before the class is put into service. This
  36  * annotation MUST be supported on all classes that support dependency
  37  * injection. The method annotated with PostConstruct MUST be invoked even
  38  * if the class does not request any resources to be injected. Only one
  39  * method can be annotated with this annotation. The method on which the
  40  * PostConstruct annotation is applied MUST fulfill all of the following
  41  * criteria:

  42  * <ul>
  43  * <li>The method MUST NOT have any parameters except in the case of
  44  * interceptors in which case it takes an InvocationContext object as
  45  * defined by the Interceptors specification.</li>
  46  * <li>The method defined on an interceptor class MUST HAVE one of the
  47  * following signatures:
  48  * <p>
  49  * void <METHOD>(InvocationContext)
  50  * <p>
  51  * Object <METHOD>(InvocationContext) throws Exception
  52  * <p>
  53  * <i>Note: A PostConstruct interceptor method must not throw application
  54  * exceptions, but it may be declared to throw checked exceptions including
  55  * the java.lang.Exception if the same interceptor method interposes on
  56  * business or timeout methods in addition to lifecycle events. If a
  57  * PostConstruct interceptor method returns a value, it is ignored by
  58  * the container.</i>
  59  * </li>
  60  * <li>The method defined on a non-interceptor class MUST HAVE the
  61  * following signature:
< prev index next >