0
Многие книги под КДИ (контекст и Dependency Injection), но в Java EE 7 API там перечислены в разных пакетах от CDIЯвляются ли перехватчики и декораторы частью CDI? Перечислим их
- javax.decorator
- javax.interceptor
Утверждение о перехватчиках не совсем корректно. На самом деле существует 2 типа перехватчиков: перехватчики были определены для EJB 3.0 в Java EE 5, даже до того, как CDI был доступен, а с CDI в Java EE 6 появился новый тип перехватчика, который является более общим. Перехватчики CDI могут применяться к любым компонентам CDI, а не только к EJB и устаревшим старшим перехватчикам EJB 3.0. Новые перехватчики CDI, конечно же, являются частью спецификации CDI, прямо под декораторами в главе 9. – OndrejM
Хорошо, я тоже не совсем корректно. Перехватчики, упомянутые в спецификации EJB и спецификации CDI, одинаковы, они используют аннотацию '@ javax.interceptor.AroundInvoke' для обозначения методов перехватчика. Однако спецификации 2 отличаются тем, как применяются перехватчики к компонентам. В спецификации EJB вы применяете перехватчики, используя '@ Interceptors' в EJB. В CDI вы применяете перехватчики на любом CDI-компоненте, используя '@ InterceptorBinding', и вы должны включить их в beans.xml. – OndrejM