Я использую aspectj и у меня определены два почти идентичных аспекта, первый работает просто отлично, если второй сбой при компиляции, как показано ниже:
[WARNING] advice defined in com...RolesAspect has not been applied [Xlint:adviceDidNotMatch]
Первый аспект:
@Aspect
public class RoleAspect {
@Before("requireRolePointcut(requireRole)")
public void requireRole(JoinPoint joinPoint, RequireRole requireRole) throws Throwable {
//TODO
}
@Pointcut("@annotation(requireRole)")
public void requireRolePointcut(RequireRole requireRole) {
}
}
Второй аспект:
@Aspect
public class RolesAspect {
@Before("requireRolesPointcut(requireRoles)")
public void requireRoles(JoinPoint joinPoint, RequireRoles requireRoles) throws Throwable {
//TODO
}
@Pointcut("@annotation(requireRoles)")
public void requireRolesPointcut(RequireRoles requireRoles) {
}
}
Аннотация RequireRole:
@Retention(RetentionPolicy.RUNTIME)
@Target(value={ElementType.METHOD})
public @interface RequireRole {
String value();
}
Аннотация RequireRoles:
@Retention(RetentionPolicy.RUNTIME)
@Target(value={ElementType.METHOD})
public @interface RequireRoles {
String[] value();
}
Любая помощь действительно приветствуется. Я пробовал много разных аннотаций, но вторая всегда терпит неудачу, поэтому должно быть что-то, возможно, с этим.