Я объявил аннотацию действийSpring AOP Ошибка: Ошибка типа называют не является типом аннотаций
@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface Action {
String name();
}
Когда я попытался сделать Pointcut
@Aspect
@Component
public class LogAspect {
@Pointcut("@annotation(com.wisely.highlight_spinrg4.ch1.aop.Action)") //it failed here
public void annotationPointCut() {}
@After("annotationPointCut()")
public void after(JoinPoint joinPoint) {
MethodSignature signature = (MethodSignature)
joinPoint.getSignature();
Method method = signature.getMethod();
Action action = method.getAnnotation(Action.class);
System.out.println("Annotation Interpreter " + action.name());
}
@Before("execution(*com.wisely.highlight_spring4.ch1.aop.DemoMethodService.*(..))")
public void before(JoinPoint joinPoint) {
MethodSignature signature = (MethodSignature)
joinPoint.getSignature();
Method method = signature.getMethod();
System.out.println("Method Interpreter" + method.getName());
}
}
Он бросил ошибку: Java .lang.IllegalArgumentException: error Тип, о котором идет речь, не является типом аннотации: com $ wously $ highlight_spinrg4 $ ch1 $ aop $ Действие
Я понятия не имею, поскольку я использовал @interface для установки «Action», как аннотация. Может ли кто-нибудь помочь?
Я предполагаю, что тип находится в названии пакета? 'spinrg4' должен быть' spring4', я думаю ... –
В этом проблема! Большое спасибо! – jiazhong