2015-10-06 2 views

ответ

4

См. JSR-346 для ответа. Вы можете найти его here

Декораторы являются частью спецификации CDI. Вы можете найти его в главе 8.

Перехватчики не входят в спецификацию CDI. Это ссылка в 1.2.5 как отношение к спецификации CDI. Он является частью спецификации EJB JSR-345, см. Главу 7 этой спецификации.

+2

Утверждение о перехватчиках не совсем корректно. На самом деле существует 2 типа перехватчиков: перехватчики были определены для EJB 3.0 в Java EE 5, даже до того, как CDI был доступен, а с CDI в Java EE 6 появился новый тип перехватчика, который является более общим. Перехватчики CDI могут применяться к любым компонентам CDI, а не только к EJB и устаревшим старшим перехватчикам EJB 3.0. Новые перехватчики CDI, конечно же, являются частью спецификации CDI, прямо под декораторами в главе 9. – OndrejM

+1

Хорошо, я тоже не совсем корректно. Перехватчики, упомянутые в спецификации EJB и спецификации CDI, одинаковы, они используют аннотацию '@ javax.interceptor.AroundInvoke' для обозначения методов перехватчика. Однако спецификации 2 отличаются тем, как применяются перехватчики к компонентам. В спецификации EJB вы применяете перехватчики, используя '@ Interceptors' в EJB. В CDI вы применяете перехватчики на любом CDI-компоненте, используя '@ InterceptorBinding', и вы должны включить их в beans.xml. – OndrejM

Смежные вопросы