2016-11-14 19 views
0

При реализации Interceptor существует ли способ перехватить имя фактического (конкретного) класса с использованием InvocationContext?@Intercepted vs InvocationContext

Если я ошибаюсь, вызов ic.getMethod().getDeclaringClass().getName() вернет (расширенный) интерфейс/базовый абстрактный класс?

Является ли аннотация @Intercepted единственным способом перехвата фактической реализации?

ответ

0

В прошлом, я использовал следующее, чтобы получить имя перехваченного класса:

public Object audit(InvocationContext invocation) throws Exception 
{ 
    final String name = invocation.getTarget().getClass().getName(); 
    ... 

«мишень» в этом контексте является классом, который перехватывается.

+0

Да, это правильно, но если вы перехватите методы '' @ AroundConstruct'', это будет null, поэтому обязательно проверьте значение null. – maress