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