Описание тега 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