4

私はJavaで多くの注釈を使用しましたが、1つも書きませんでした。いくつかのガイドを読みましたが、本当に混乱しています。

彼らは名前や年齢などのメタ情報のような注釈を使用しています。私は何か違うことをしたいので、それは本当に紛らわしいです

http://www.developer.com/java/other/article.php/3556176/An-Introduction-to-Java-Annotations.htm

関数呼び出しを制御したい。

例えば

@Permission(user)
public static void account(){
...
} 

したがって、ユーザーが許可を持っている場合にのみ関数が呼び出されます。そうでない場合、ユーザーはログインページにリダイレクトされます。

情報が見つかりませんでした。キーワードが間違っているのでしょうか?

あなたが物事をクリアできることを願っています。

ありがとう。

4

4 に答える 4

3

それは可能ですが、多くの追加コードが必要です。メソッド呼び出しのインターセプトは、AOP (アスペクト指向プログラミング) の一部です。ターゲット オブジェクトのプロキシを作成し、呼び出しハンドラでアノテーションを解析する必要があります。

幸いなことに、それを行う必要はありません。webapp があるので、spring/spring-mvc/spring-security を使用するだけです。Spring は、パーミッション ロジックを処理するアスペクトを定義するために使用できる AOP フレームワークを提供します。

于 2012-09-02T21:50:34.090 に答える
2

自分でこれを行う方法はわかりませんが、Spring を使用している場合は、役立つことがあります。

http://static.springsource.org/spring-security/site/docs/3.0.7.RELEASE/reference/el-access.html

現在のプロジェクトで使用していますが、うまく機能します

于 2012-09-02T21:49:10.573 に答える
1

そのようなことは、実際には関数自体 (またはプログラムの他の部分) で行う必要があります。注釈は、プログラム自体の一部ではないプログラムに関するデータを提供することに注意してください (このリファレンスを参照)。

于 2012-09-02T21:49:52.460 に答える
1

あなたが求めているのは、メソッドの前に実行される AOP アドバイザーだと思います。ここを参照してください:http://java-questions.com/spring_aop.html

Spring の代わりに、AspectJ を使用できます: http://www.andrewewhite.net/wordpress/2010/03/17/aspectj-annotation-tutorial/

于 2012-09-02T21:53:03.257 に答える