Spec-Zone.ru › OpenJDK 8

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


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

Аннотация PreDestroy используется для методов в качестве уведомления о том, что экземпляр находится в процессе удаления контейнером. Метод, аннотированный PreDestroy, обычно используется для освобождения ресурсов, которые он удерживал. Эта аннотация ОБЯЗАТЕЛЬНО должна поддерживаться всеми управляемыми контейнером объектами, поддерживающими PostConstruct, за исключением контейнера клиентского приложения в Java EE 5. Метод, к которому применена аннотация PreDestroy, ДОЛЖЕН соответствовать всем следующим критериям:

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

    void <METHOD>(InvocationContext)

    Object <METHOD>(InvocationContext) throws Exception

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

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

    void <METHOD>()

  • Метод, к которому применяется PreDestroy, МОЖЕТ быть public, protected, package private или private.
  • Метод НЕ должен быть статическим.
  • Метод МОЖЕТ быть final.
  • Если метод выбрасывает необработанное исключение, оно игнорируется, за исключением случаев с EJB, где EJB может обрабатывать исключения.
С:
Common Annotations 1.0
См. также:
PostConstruct, 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