方言春(初級)--- AOP(実行式)(RPM)

[スキャンティは、自分で掘りを与えることです]

最後の一つとしてAOP内容は、の簡単にまとめたもの切断面の表現方法への書き込みを見てみましょう。事前に他のブログの記事を参照して以下の内容は、オープンソースのブログの偉大な神に感謝します!

-------------------------------------------------- -------------------------------------------------- -------------------------------------------------- -

1.私たちは、他のブログを見て、この例で説明しました

-------------------------------------------------- -------------------------------------------------- -------------------------------------------------- -

実行(* com.sample.service.impl .. *。*(..))

次のように説明しました:

記号意味

実行()                  身体表現。

まずA「*」記号は、        任意の値の戻り値の型を示します。

、私たちのビジネスの一部であるサービスのcom.sample.service.impl AOPカットのパッケージ名
パッケージ名の後ろに「..」現在のパッケージとサブパッケージことを示している
第二の『*』、すなわちすべてのカテゴリ*、クラス名を示します。ここであり、以下の例のために、カスタマイズすることができる
。*(..)は、任意のメソッド名、パラメータの括弧を示し、二点は、任意のパラメータの型を表します


・実行の概要のAspectJの式:
基本的な構文は次のとおりです。

実行(<修飾子モード> <?戻り型モデル> <モデルのメソッド名>(<パラメータモード>)<異常パターン>?)のパターンの戻り型、およびメソッド名モードパラメータ・モードに加えて、他の項目は任意です。

ここでは、様々な例の実行()関数を使用することをお勧め。


1)メソッドシグネチャ定義ポイントカットによって

 実行(パブリック* *(..))

すべてのpublicメソッドは、ターゲットクラスに一致するが、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

その他のボーエン:
http://outofmemory.cn/code-snippet/3762/Spring-AOP-learn-example

http://tonl.iteye.com/blog/1966075
----------------
免責事項:この記事はCSDNブロガー「Y-YGのオリジナルの記事で、CC 4.0 BYに従ってください-SAの著作権契約は、再現し、元のソースのリンクと、この文を添付してください。
オリジナルリンクします。https://blog.csdn.net/abcd898989/article/details/50809321

 

おすすめ

転載: www.cnblogs.com/muxi0407/p/11882586.html