注釈があります:
@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 のメソッドに直接アノテーションを付けると動作します...
ありがとう!