Springaop-pointcut-methods
Spring AOP-XMLベースのPointCut
参加ポイント
JoinPointは、AOPアスペクトをプラグインできるアプリケーション内のポイントを表します。 また、Spring AOPフレームワークを使用してアクションが実行されるアプリケーション内の実際の場所であるとも言えます。 次の例を考慮してください-
- パッケージに含まれるすべてのメソッドクラス。
- クラスの特定のメソッド。
ポイントカット
PointCutは、アドバイスを実行する必要がある1つ以上のJoinPointのセットです。 AOPの例で見るように、式またはパターンを使用してPointCutsを指定できます。 Springでは、PointCutは特定のJoinPointを使用してアドバイスを適用するのに役立ちます。 次の例を考慮してください-
- 式= "execution(* com.finddevguides。。(..))"
- 式= "execution(* com.finddevguides.Student.getName(..))"
構文
どこで、
- adviceClass -アドバイスメソッドを含むクラスの参照
- PointCut-id -PointCutのID
- * 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 です。
ソースおよびBean構成ファイルの作成が完了したら、アプリケーションを実行します。 アプリケーションで問題がなければ、次のメッセージが出力されます。
上記で定義された<aop:pointcut>は、パッケージcom.finddevguidesで定義されたすべてのメソッドを選択します。 特定のメソッドの前後にアドバイスを実行したい場合、PointCutの定義の星印(*)を実際のクラス名とメソッド名に置き換えることにより、PointCutを定義して実行を絞り込むことができます。 以下は、概念を示すために変更されたXML構成ファイルです。
プロジェクトを実行
ソースファイルと構成ファイルの作成が完了したら、アプリケーションを実行します。 アプリケーションでMainApp.javaを右クリックし、「Javaアプリケーションとして実行」コマンドを使用します。 アプリケーションで問題がなければ、次のメッセージが出力されます。