13
7

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Spring AOP Pointcutについて

Last updated at Posted at 2017-10-12

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のメソッドが対象

以上です。お疲れ様でしたー。

参考書籍

[Spring徹底入門 Spring FrameworkによるJavaアプリケーション開発] (https://www.amazon.co.jp/Spring%E5%BE%B9%E5%BA%95%E5%85%A5%E9%96%80-Spring-Framework%E3%81%AB%E3%82%88%E3%82%8BJava%E3%82%A2%E3%83%97%E3%83%AA%E3%82%B1%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3%E9%96%8B%E7%99%BA-%E6%A0%AA%E5%BC%8F%E4%BC%9A%E7%A4%BENTT%E3%83%87%E3%83%BC%E3%82%BF/dp/4798142476/)

13
7
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
13
7

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?