Springaop-pointcut-methods1
Spring AOP-注釈ベースのPointCut
JoinPoint
JoinPointは、AOPアスペクトをプラグインできるアプリケーション内のポイントを表します。 また、Spring AOPフレームワークを使用してアクションが実行されるアプリケーション内の実際の場所であるとも言えます。 次の例を考慮してください-
- パッケージに含まれるすべてのメソッドクラス。
- クラスの特定のメソッド。
ポイントカット
PointCutは、アドバイスを実行する1つ以上のJoinPointのセットです。 AOPの例で見るように、式またはパターンを使用してPointCutsを指定できます。 Springでは、PointCutは特定のJoinPointを使用してアドバイスを適用するのに役立ちます。 次の例を考慮してください-
- @PointCut( "execution(* com.finddevguides。。(..))")
- @PointCut( "execution(* com.finddevguides.Student.getName(..))")
構文
どこで、
- @ Aspect -クラスをアドバイスメソッドを含むクラスとしてマークします。
- @ PointCut -関数をPointCutとしてマークする
- * execution(expression)*-アドバイスが適用されるメソッドをカバーする式。
JoinPointおよびPointCutに関連する上記の概念を理解するために、PointCutsのいくつかを実装する例を作成しましょう。 少しアドバイスをしてサンプルを作成するには、動作するEclipse IDEを用意し、次の手順を使用してSpringアプリケーションを作成します。
Step | Description |
---|---|
1 | Update the project Student created under chapter Spring AOP - Application. |
2 | Update the bean configuration and run the application as explained below. |
以下は Logging.java ファイルの内容です。 これは実際にはアスペクトモジュールのサンプルであり、さまざまなポイントで呼び出されるメソッドを定義します。
以下は Student.java ファイルの内容です。
以下は MainApp.java ファイルの内容です。
以下は、構成ファイル Beans.xml です。
プロジェクトを実行
ソースファイルと構成ファイルの作成が完了したら、アプリケーションを実行します。 アプリケーションでMainApp.javaを右クリックし、「Javaアプリケーションとして実行」コマンドを使用します。 アプリケーションで問題がなければ、次のメッセージが出力されます。
上記で定義された@Pointcutは、式を使用して、パッケージcom.finddevguidesで定義されたすべてのメソッドを選択します。 @Beforeアドバイスでは、上記で定義したPointCutをパラメーターとして使用します。 上記のPointCutでカバーされるすべてのメソッドの前に、事実上beforeAdvice()メソッドが呼び出されます。