public class Secured {
@RolesAllowed("ADMIN")
public static void staticJsr250() {
System.out.println("@RolesAllowed in static");
System.out.println("The class is: " + new Object() {}.getClass().getEnclosingClass());
}
}
如果没有角色ADMIN,该方法将不会输出任何内容。
使用ADMIN角色,它将输出:
@RolesAllowed in static
The class is: class Secured
我不知道为什么会这样。
对于非静态方法,它应该有效,因为隐式参数是代理,而不是真正的安全对象。
但是静态方法有代理吗?
如何解释?