参考住所:https://blog.csdn.net/zz210891470/article/details/54175107
実行(* com.sample.service.impl .. *。*(..))
次のように説明しました:
シンボル | 意味 |
実行() | 体の発現; |
最初の「*」記号 | 戻りは、任意の値の種類を示します。 |
com.sample.service.impl | AOPカットパッケージ名のサービス、すなわち、私たちのビジネスセクション |
パッケージ名のバック「..」 | 現在のパッケージとサブパッケージのことを示します |
第二の「*」 | クラス名、*つまり、すべてのクラスを表します。ここでは、次の例でカスタマイズすることができます |
。*(..) | 任意のメソッド名を表し、括弧はパラメータを示し、二点は、任意のパラメータの型を表します |
・実行の概要のAspectJの式:
基本的な構文は次のとおりです。
実行(<修飾子モード> <?戻り型モデル> <モデルのメソッド名>(<パラメータモード>)<異常パターン>?)のパターンの戻り型、およびメソッド名モードパラメータ・モードに加えて、他の項目は任意です。
ここでは、様々な例の実行()関数を使用することをお勧め。
1)メソッドシグネチャ定義ポイントカットによって
実行(パブリック* *(..))
ターゲットクラスに一致するすべてのパブリックメソッドが、SmartSellerと保護voidshowGoods()メソッドと一致していません。*第二メソッド名を表す第1の戻り型の代表、およびパラメータ..代表のいずれかに記載の方法。
実行(* *へ(..))リットル
接尾辞にターゲットを合わせて、すべてのメソッド。それはNaiveWaiterとNaughtyWaiter greetTo()とserveTo()メソッドと一致します。*最初の戻り型の代表的な、任意の方法に代わっ*サフィックスするために。
接線の点によって定義される2)クラス
実行(* com.baobaotao.Waiter。*(..))リットル
全ての方法は、ウェイターインターフェースに一致し、それはgreetTo NaiveWaiter NaughtyWaiterクラス()とserveTo()メソッドと一致します。*最初のリターンに任意の型を表し、com.baobaotao.Waiter *は、すべてのメソッドウェイターインタフェースを表し;
実行(* com.baobaotao.Waiter +。*(..))リットル
方法ウェイターインターフェースとその実装クラスのすべての一致のために、それだけでなくNaiveWaiter NaughtyWaiterクラスgreetToを(一致)と、これら二つのウェイターインタフェース定義のserveTo()メソッドだけでなく、NaiveWaiter位笑顔に一致()とNaughtyWaiter#ジョーク()は二つの方法は、インタフェースウェイターに定義されていません。
接線の点によって定義される3)パケットタイプ
クラス名パターン文字列は、「*」パッケージのすべてのクラスを示し、「.. *」のパッケージは、パッケージの子孫のすべてのクラスを表します。
実行(* com.baobaotao。*(..))リットル
Com.baobaotaoパケットは、すべてのクラスのすべてのメソッドにマッチします。
実行(* com.baobaotao .. *(..))リットル
Com.baobaotaoマッチングパッケージ、com.baobaotao.dao、com.baobaotao.servierとcom.baobaotao.dao.userパケット一致ですべてのクラスのすべてのメソッドとして子孫の下のパッケージのすべてのクラスのすべてのメソッド。「..」、クラス名で表示される 『*』が続く必要があります、パッケージ、パッケージ息子のすべてのクラスが言いました。
実行(* COM .. *。* Dao.find *(..))リットル
任意のプレフィックスマッチングパッケージ名パッケージのCOM名のサフィックスのメソッドは、メソッドの名前を見つけるためダオ下のクラスは、接頭辞として付ける必要があります。com.baobaotao.UserDao#findByUserId()、com.baobaotao.dao.ForumDao#findById()メソッドは、接点と一致します。
4)基準接点に規定された方法により
基準部のカットポイントを発現する方法は複雑では、「*」と 『*』のパラメータの任意のタイプを表し、「..」パラメータの数を示し、パラメータの任意の種類は限定されないが、ここで「..」ワイルドカードを使用することができます。
実行(*ジョーク(文字列、int型)))リットル
最初のパラメータはジョーク(文字列、int)メソッドと一致し、ジョーク()メソッドは文字列であり、第二の引数は整数です。それはNaughtyWaiter#冗談(文字列、int)メソッドと一致します。メソッドのパラメータの型である場合のJavaクラス・パッケージの下.lang、クラス名をそのまま用いてもよいし、そのようなジョーク(java.util.Listに、INT)のような完全修飾クラス名でなければなりません。
実行(*ジョーク(文字列、*)))リットル
ジョークは、最初のパラメータが文字列である目標クラス()メソッドは、2番目のパラメータは、そのようなジョーク(Strings1、文字列s2)とジョーク(ストリングS1、ダブルD2)マッチのような任意のタイプであってもよく一致します一致していません。しかし、ジョーク(文字列s1を、doubled2、文字列のS3)。
実行(*ジョーク(文字列、...)))リットル
最初のパラメータは文字列()メソッドジョークでターゲットと一致するように、参照パラメータに戻し、任意の数を有することができ、型がジョーク(Strings1)、ジョーク(ストリングS1、文字列s2)と冗談として、限定されるものではありません(文字列S1、ダブルD2、Strings3)一致。
実行(*ジョーク(オブジェクト+)))
ジョークがターゲットクラス()メソッドと一致し、この方法は、パラメータを有し、パラメータは、クラスまたはタイプのオブジェクトのサブクラスです。それは冗談(Strings1)とジョーク(クライアントC)と一致します。我々が定義する場合、カットオフポイントが一致ジョーク(Stringcc)又はジョーク(クライアントC)なしで実行(*ジョーク(オブジェクト))のみマッチジョーク(Objectオブジェクト)です。
-------------------------------------------------- -------------------------------------------------- --------------------------------
2.今、私たちは、この説明と例の公式ドキュメントを見て
-------------------------------------------------- -------------------------------------------------- --------------------------------
-------------------------------------------------- -------------------------------------------------- ----------------------------
これまでのところ、方言春(基礎)--- AOP(実行式)終了
備考:
我々はすべての例の方法はありません上記の式は、需要があるだけでなく、読者には、コンフィギュレーションを実行し、自身の公式文書に解釈を参照してください。
参考文献:
春の公式ウェブサイト:のhttp://spring.io/docs