Я пытался применить совет к действиям Struts, которые не являются бобами Spring.Я изменил метод, как показано ниже, и он начал работать.
@AfterThrowing(pointcut = "execution( * com.company..*(..)) and !execution( * com.company.*.action..*(..))", throwing = "throwable")
public void logException(JoinPoint joinPoint,Throwable throwable)
{
Logger logger = Logger.getLogger(joinPoint.getTarget().getClass());
String className = joinPoint.getTarget().getClass().getCanonicalName();
logger.error(className + " :: " + joinPoint.getSignature().getName() + " :: " + "Exception", throwable);
}
Имея в виду все вышесказанное, я думаю, всегда ли плохая идея использовать * com.company..*(..)
.И, скорее, держите его конкретным, применяя к конкретным пакетам, таким как услуги, бизнес, доступ к данным и т. Д.