Подтвердить что ты не робот

Что такое перехватчики в Java EE?

Я пытаюсь очистить свою концепцию о перехватчиках в Java EE. Я прочитал спецификацию Java EE, но я немного смущен. Пожалуйста, предоставьте мне полезную ссылку или учебник, который мог бы очистить мою концепцию. Как, Когда, Почему мы используем перехватчики?

4b9b3361

Ответ 1

Перехватчики используются для реализации сквозных задач, таких как ведение журнала, аудит и безопасность, из бизнес-логики.

В Java EE 5 перехватчики разрешались только на EJB. В Java EE 6 перехватчики стали новой собственной спецификацией, абстрагированной на более высоком уровне, чтобы ее можно было более широко применять к более широкому набору спецификаций на платформе.

Они перехватывают вызовы и события жизненного цикла в соответствующем целевом классе. В принципе, перехватчик - это класс, методы которого вызывается при вызове бизнес-методов в целевом классе, происходят события жизненного цикла, такие как методы, которые создают/уничтожают bean, или метод тайм-аута EJB. Спецификация CDI определяет механизм безопасного типа для связывания перехватчиков с beans с использованием перехватчиков перехватчиков.

Ищите образец рабочего кода:

https://github.com/arun-gupta/javaee7-samples/tree/master/cdi/interceptors

Java EE 7 также представила новую аннотацию @Transactional в API транзакций Java. Это позволяет выполнять транзакции, управляемые контейнером, за пределами EJB. Эта аннотация определяется как привязка перехватчика и реализуется средой Java EE. Рабочий образец @Transactional находится по адресу:

https://github.com/arun-gupta/javaee7-samples/tree/master/jta/transaction-scope

Ответ 2

Мне нравится это определение: Перехватчики - это компоненты, которые перехватывают вызовы методам EJB. Они могут использоваться для аудита и ведения журнала, когда и когда доступны EJB.

В другой ситуации они могут использоваться в ситуации, когда нам нужно проверить, имеет ли клиент полномочия или разрешение для выполнения транзакции на конкретном объекте в базе данных. Ну, вот где перехватчики пригождаются; они могут проверить, имеет ли клиент/пользователь этот орган, проверяя, может ли он/она вызывать этот метод для этого объекта базы данных или EJB.

Тем не менее, я бы по-прежнему взглянул на следующую статью и следующую tutorial на получить представление о том, как они используются в настройке/среде Java EE.

Ответ 3

Перехватчики используются для добавления возможностей AOP к управляемому beans.

Мы можем присоединить Interceptor к нашему классу с помощью аннотации @Interceptor. Всякий раз, когда метод в нашем классе называется, прикрепленный Interceptor будет перехватывать вызов этого метода и выполнять его метод перехватчика.

Это может быть достигнуто с помощью аннотации @AroundInvoke (см. пример ниже).

Перехватчики методов

Мы можем перехватывать события жизненного цикла класса (создание объекта, уничтожать и т.д.) с помощью аннотации @AroundConstruct.

Основное различие между Interceptor и Сервлет-фильтры. Мы можем использовать Interceptor вне WebContext, но фильтры специфичны для веб-приложений.

Обычное использование перехватчиков - это регистрация, аудит и профилирование.

Для более подробного введения вы можете прочитать эту статью. https://abhirockzz.wordpress.com/2015/01/03/java-ee-interceptors/