Springframework 学習その3 AOPのPointcutについてです。
Pointcutについて
Pointcutとは
前回のまとめで記載しましたが、Pointcutについて今一度まとめてみます。
Pointcutとは、Join Pointのグループを示します。
例えば、以下のようなexecutionも、Join PointのPointcutとなります。
execution(* com.nanafushi.sample.*Controller.*(..))
Pointcutはパターンを指定してマッチングをすることができます。
Pointcutの構成
execution(* com.nanafushi.sample.*Controller.*(..))
上記を例として、左から順番に抽出して説明すると、
パーツ | 役割 |
---|---|
execution | 指示子。メソッドの実行をトリガにする |
* | 戻り値。voidのものだけ とか |
com.nanafushi.sample | パッケージ |
*Controller | クラス名。末尾がControllerのクラス |
* | メソッド名 |
(..) | メソッドの引数。この場合は任意の引数 |
ワイルドカード
Pointcutで利用できるワイルドカードは以下の通りです。
ワイルドカード | 役割 |
---|---|
* | 原則は任意の文字列 パッケージの場合は任意の1階層 メソッドの場合は任意の1つの引数 |
.. | パッケージの場合は、任意の0以上のパッケージ メソッドの引数の場合は、任意の0以上の引数 |
+ | クラス名の後に指定することで、そのクラスを含むサブクラス、実装クラス全てを含める |
指示子の種類
Pointcutには色々種類があります。
よく使いそうなものを列挙してみます。
Pointcut | トリガ |
---|---|
execution | パターンにマッチするメソッドが対象 |
within | パターンにマッチするクラスのメソッドが対象 |
bean | パターンにマッチするBeanのメソッドが対象 |
以上です。お疲れ様でしたー。