我有一个注释:
@Target( { ElementType.METHOD } )
@Retention( RetentionPolicy.RUNTIME )
@Inherited
public @interface Privilege {
String[] value();
}
还有一个界面:
public interface UserService {
@Privilege("USER_READ")
UserDTO getUserProperties(long userId);
}
及其实施:
public class UserServiceImpl implements UserService {
public UserDTO getUserProperties(long userId) { ... }
}
和 Spring AOP 设置:
<aop:aspectj-autoproxy />
<aop:config>
<aop:aspect id="securityAspect" ref="hlSecurityCheck">
<aop:pointcut id="securityPointcut"
expression="@annotation(services.annotation.Privilege)" />
<aop:around pointcut-ref="securityPointcut" method="checkService" />
...
为什么这不起作用?(当我将注释直接放在 UserServiceImpl 的方法上时,它正在工作......
谢谢!