Skip to content
Snippets Groups Projects
Select Git revision
  • 2e54393d4cadb2078c49a405d05a9b04a29e8afd
  • master default protected
  • legacy
  • jdk-17.0.13-ga-legacy
  • jdk-17.0.14+4
  • jdk-17.0.14+3
  • jdk-17.0.14+2
  • jdk-17.0.14+1
  • jdk-17.0.13-ga
  • jdk-17.0.13+11
  • jdk-17.0.13+10
  • jdk-17.0.13+9
  • jdk-17.0.13+8
  • jdk-17.0.13+7
  • jdk-17.0.13+6
  • jdk-17.0.14+0
  • jdk-17.0.13+5
  • jdk-17.0.13+4
  • jdk-17.0.13+3
  • jdk-17.0.13+2
  • jdk-17.0.13+1
  • jdk-17.0.13+0
  • jdk-17.0.12-ga
23 results

PostConstruct.java

Blame
  • user avatar
    Henry Jen authored
    Reviewed-by: alanb, mkos
    10d82f29
    History
    PostConstruct.java 3.48 KiB
    /*
     * Copyright (c) 2005, 2013, Oracle and/or its affiliates. All rights reserved.
     * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
     *
     * This code is free software; you can redistribute it and/or modify it
     * under the terms of the GNU General Public License version 2 only, as
     * published by the Free Software Foundation.  Oracle designates this
     * particular file as subject to the "Classpath" exception as provided
     * by Oracle in the LICENSE file that accompanied this code.
     *
     * This code is distributed in the hope that it will be useful, but WITHOUT
     * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
     * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
     * version 2 for more details (a copy is included in the LICENSE file that
     * accompanied this code).
     *
     * You should have received a copy of the GNU General Public License version
     * 2 along with this work; if not, write to the Free Software Foundation,
     * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
     *
     * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
     * or visit www.oracle.com if you need additional information or have any
     * questions.
     */
    
    package javax.annotation;
    
    import java.lang.annotation.*;
    import static java.lang.annotation.ElementType.*;
    import static java.lang.annotation.RetentionPolicy.*;
    
    /**
     * The PostConstruct annotation is used on a method that needs to be executed
     * after dependency injection is done to perform any initialization. This
     * method MUST be invoked before the class is put into service. This
     * annotation MUST be supported on all classes that support dependency
     * injection. The method annotated with PostConstruct MUST be invoked even
     * if the class does not request any resources to be injected. Only one
     * method can be annotated with this annotation. The method on which the
     * PostConstruct annotation is applied MUST fulfill all of the following
     * criteria:
     * <p>
     * <ul>
     * <li>The method MUST NOT have any parameters except in the case of
     * interceptors in which case it takes an InvocationContext object as
     * defined by the Interceptors specification.</li>
     * <li>The method defined on an interceptor class MUST HAVE one of the
     * following signatures:
     * <p>
     * void &#060;METHOD&#062;(InvocationContext)
     * <p>
     * Object &#060;METHOD&#062;(InvocationContext) throws Exception
     * <p>
     * <i>Note: A PostConstruct interceptor method must not throw application
     * exceptions, but it may be declared to throw checked exceptions including
     * the java.lang.Exception if the same interceptor method interposes on
     * business or timeout methods in addition to lifecycle events. If a
     * PostConstruct interceptor method returns a value, it is ignored by
     * the container.</i>
     * </li>
     * <li>The method defined on a non-interceptor class MUST HAVE the
     * following signature:
     * <p>
     * void &#060;METHOD&#062;()
     * </li>
     * <li>The method on which PostConstruct is applied MAY be public, protected,
     * package private or private.</li>
     * <li>The method MUST NOT be static except for the application client.</li>
     * <li>The method MAY be final.</li>
     * <li>If the method throws an unchecked exception the class MUST NOT be put into
     * service except in the case of EJBs where the EJB can handle exceptions and
     * even recover from them.</li></ul>
     *
     * @see javax.annotation.PreDestroy
     * @see javax.annotation.Resource
     * @since 1.6, Common Annotations 1.0
     */
    @Documented
    @Retention (RUNTIME)
    @Target(METHOD)
    public @interface PostConstruct {
    }