Примечание:
Как указано в 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 вызывает этот метод перед началом уничтожения компонента.
Назад | Вперёд | Содержание |