Я не верю, что вы можете получить аннотацию в качестве аргумента при применении к типу
Следующая выражения срез точек
@Before("@annotation(com.some.TestAnnotation) || within(@com.some.TestAnnotation *)")
будет соответствовать либо метод аннотированный или класс аннотированный. Вы можете объявить совет, чтобы получить аннотацию либо из метода или класса
MethodSignature methodSignature = (MethodSignature) joinPoint.getSignature();
TestAnnotation annotation = methodSignature.getMethod().getAnnotation(TestAnnotation.class);
if (annotation == null) {
Class<?> clazz = methodSignature.getDeclaringType();
annotation = clazz.getAnnotation(TestAnnotation.class);
if (annotation == null) {
System.out.println("impossible");
} else {
System.out.println("class has it");
}
} else {
System.out.println("method has it");
}
Вы должны также рассмотреть случай, когда оба метода и типа имеют аннотацию.