Я пытаюсь использовать AspectJ после того, как узнаю немного теории об этом.
Я сделал очень простой пример, который должен был сработать, но рядом с моим методом я получил информационное сообщение «Этот совет не рекомендует никаких методов».
Мой код следующий:
@Aspect
public class LoggingAspect {
private static Logger logger = Logger.getLogger(Object.class);
@AfterReturning(pointcut = "execution(* com.ecc.bo.company.Company.getName(..))", returning = "x")
public void logResult(Object x) {
logger.error("WITH ASPECTS, method returned: " + x.toString());
}
}
Я не могу понять почему, так как имя пакета автоматически заполнялось, когда я печатал. Кроме того, я поставил точку останова на указанный метод на всякий случай (getName), и он действительно вызывается.
Может быть, я пропустил какой-то шаг настройки или, может быть, есть синтаксическая ошибка, которую я не могу найти?
Я также пытался использовать ультра универсальную версию с
execution(* *(..))
но он все еще не соответствует ни одному методу.
РЕДАКТИРОВАТЬ: вот "интересная" часть класса компании:
public class Company {
private String name;
public String getName() {
return name;
}
}
Особых аннотаций нет, по крайней мере, ничего не связано с AspectJ