2015-05-18 3 views
3

У меня есть аспект:Как получить значения параметров метода?

public aspect TestAspect { 
    pointcut publicMethodExecuted(): execution(public !static * *(..)); 

    int around() : publicMethodExecuted() { 
     //I need parameters values here 
     //to write their to log 

     int original_return_value = proceed(); 
     return original_return_value * 100; 
    } 
} 

Как получить параметры вызова метода с? Мне нужно записать их в файл журнала.

Меня больше всего интересует родной AspectJ -way, не используя отражение.

ответ

6

Извините, если я не понял, но это должно привести параметры

Object[] args = thisJoinPoint.getArgs(); 
+0

Нет, ваш вопрос понял правильно. Спасибо. –

2

Вы можете получить доступ к точке соединения с thisJoinPoint внутри вашего аспекта.

Доступ к вашим параметрам можно получить с помощью thisJoinPoint.getArgs().

Кроме того, вы можете получить доступ к сигнатуре вашего вызова метода с помощью thisJoinPointStaticPart.

E.g. вы можете получить доступ к имени метода с помощью thisJoinPointStaticPart.getSignature().getName().

Для получения дополнительной информации, пожалуйста, используйте документы JoinPoint и JoinPoint.StaticPart.

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