次のように、必要な数のパラメーターを使用して注釈を呼び出すことができるようにしたいと思います。
@Authorize("Admin", "Moderator", "User")
public static void read() {
// ...
}
これまでのところ、ここに私の注釈があります:
@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.METHOD, ElementType.TYPE})
public @interface Authorize {
String[] value() default {};
}
しかし、ご存知かもしれませんが、これは次の場合にのみ機能します。
@Authorize
@Authorize("Admin")
@Authorize({"Admin", "Moderator", "User"})
実際、最初の 2 つは問題ありませんが、気になるのは最後の 1 つです。
理由は簡単です。
権利については、多くのプロファイルでメソッドを使用できるようにしたいと考えています。{} は「WITH」を意味し、「OR」を探しています ;)
(私の見解では) {} は「パッケージとして」提供されるため、「WITH」を意味します。相互リンクされたアイテム。たとえば、次のようにします。
SomeQuery.select({"A", "B", "C"}, {"D", "E", "F"}, {"G", "H", "I"})
私はそれを次のように翻訳します:
SELECT WHERE (A, B, C) OR (D, E, F) OR (G, H, I);
(これは SQL クエリではありません。{} と With/Or の表示方法の例にすぎません)
ありがとう!