Описание тега interceptor

Шаблон проектирования перехватчика позволяет "вставлять" логику до, во время или после выполнения фрагмента кода, такого как метод.

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

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

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

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

Найдите рабочий образец кода по адресу:

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

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

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