У меня есть привязка перехватчика, которая параметризована:
@InterceptorBinding
@Target({ ElementType.METHOD, ElementType.TYPE })
@Retention(RetentionPolicy.RUNTIME)
public @interface Traced {
@Nonbinding
boolean traceFull() default true;
}
Затем я определяю реализацию перехватчика
@Interceptor
@Traced
public class TracingInterceptor implements Serializable { ... }
В реализации я хочу проверить, какое значение установлено для параметра traceFull.
(Я не хочу реализовывать три реализации перехватчика для true, false и null)
Итак, моя реализация проверяет Interceptor-Binding-Annotation перехваченного метода:
Traced traceAnnotation = context.getMethod().getAnnotation(Traced.class);
if (traceAnnotation != null && traceAnnotation.traceFull()) { ... }
Это работает нормально, но если я использую привязку со стереотипом или вложенным перехватчиком, я не получаю @Traced annotatopn метода и не могу проверить значение, которое установлено.
Итак, мой вопрос: как я могу получить привязку 'call' в моей реализации перехватчика?