Я использую Spring aop с groovy и имею аспект мониторинга, который должен регистрировать время выполнения каждого метода. Проблема состоит в том, что вызов groovy не совпадает с вызовами java, поэтому следующий код всегда печатает «getMetaClass()» как имя метода.Spring AOP with groovy: get called method
@Before("execution(* mypackage.MyService.*(..))")
void beforeMethod(JoinPoint joinPoint) {
logger.info(joinPoint.signature.name + " called")
}
Я вижу два пути решения проблемы:
- Найти фактический метод от заводной вызова
- использования какой-либо другой способ, чтобы получить вызываемый метод (вместо инъекционного jointPoint аргумент)
Любые идеи?