Примечание:
Как указано в JSR 250, если аннотированный метод объявлен в родительском классе, метод вызывается, если только дочерний класс объявленного класса не переопределяет метод.
|
Java Platform, Enterprise Edition (Java EE) 8 Учебник по Java EE |
| Назад | Вперёд | Содержание |
Классы Managed-бинов CDI и их родительские классы поддерживают аннотации для инициализации и подготовки к уничтожению компонента. Эти аннотации определены в JSR 250: Common Annotations for the Java platform (http://jcp.org/en/jsr/detail?id=250).
Здесь рассматриваются следующие темы:
Инициализация Managed-бина указывает Callback-метод жизненного цикла, который фреймворк CDI должен вызывать после инъецирования зависимости, но до использования инстанцированного объекта.
В классе Managed-бина или любом из его родительских классов определите метод, который выполняет требуемую инициализацию.
Аннотируйте объявление метода с помощью аннотации javax.annotation.PostConstruct.
Когда Managed-бин инъецируется в компонент, CDI вызывает метод после того, как все инъецирования были завершены и все инициализаторы были вызваны.
Примечание: Как указано в JSR 250, если аннотированный метод объявлен в родительском классе, метод вызывается, если только дочерний класс объявленного класса не переопределяет метод. |
Managed-бин UserNumberBean в примере CDI guessnumber-cdi использует @PostConstruct для аннотирования метода, который сбрасывает все поля бина:
@PostConstruct
public void reset () {
this.minimum = 0;
this.userNumber = 0;
this.remainingGuesses = 0;
this.maximum = maxNumber;
this.number = randomInt.get();
}
Подготовка к уничтожению Managed-бина указывает Callback-метод жизненного цикла, который сигнализирует о том, что контейнер приложения должен уничтожить компонент приложения.
В классе Managed-бина или в любом из его родительских классов подготовьтесь к уничтожению Managed-бина.
В этом методе выполняйте любую очистку, которая требуется до уничтожения компонента, как например, освобождение ресурса, содержащегося в бине.
Аннотируйте объявление метода с помощью аннотации javax.annotation.PreDestroy.
CDI вызывает этот метод перед началом уничтожения компонента.
| Назад | Вперёд | Содержание |
Copyright © 2017, Oracle и/или её дочерних компаний. Все права защищены.
Версия перевода 1.0.5 (Java EE Tutorial — русскоязычная версия)