Spec-Zone.ru › OpenJDK 8

Тип аннотации PostConstruct


@Documented
 @Retention(value=RUNTIME)
 @Target(value=METHOD)
public @interface PostConstruct

Аннотация PostConstruct используется для метода, который должен быть выполнен после завершения инъекции зависимостей для выполнения инициализации. Этот метод ДОЛЖЕН быть вызван до включения класса в работу. Эта аннотация ДОЛЖНА поддерживаться во всех классах, поддерживающих инъекцию зависимостей. Метод, помеченный аннотацией PostConstruct, ДОЛЖЕН быть вызван, даже если класс не запрашивает инъекцию каких-либо ресурсов. Только один метод может быть помечен этой аннотацией. Метод, к которому применена аннотация PostConstruct, ДОЛЖЕН соответствовать всем следующим критериям:

  • Метод НЕ должен иметь параметров, за исключением случаев с интерцепторами, в которых он принимает объект InvocationContext, как определено спецификацией Interceptors.
  • Метод, определенный в классе-интерцепторе, ДОЛЖЕН иметь одну из следующих сигнатур:

    void <METHOD>(InvocationContext)

    Object <METHOD>(InvocationContext) throws Exception

    Примечание: Метод интерцептора PostConstruct не должен выбрасывать исключения приложения, но он может быть объявлен для выбрасывания checked исключений, включая java.lang.Exception, если тот же метод интерцептора перехватывает бизнес- или таймаут-методы помимо событий жизненного цикла. Если метод интерцептора PostConstruct возвращает значение, оно игнорируется контейнером.

  • Метод, определенный в классе, не являющемся интерцептором, ДОЛЖЕН иметь следующую сигнатуру:

    void <METHOD>()

  • Метод, к которому применена PostConstruct, может быть public, protected, package private или private.
  • Метод НЕ должен быть статическим, за исключением клиентского приложения.
  • Метод может быть final.
  • Если метод выбрасывает unchecked исключение, класс НЕ должен быть включён в работу, за исключением случаев с EJB, где EJB может обрабатывать исключения и даже восстанавливаться из них.
Since:
Common Annotations 1.0
См. также:
PreDestroy, Resource

© 1993, 2020, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API