AOPはSpringフレームワークで使用されます
我々は最初の使用の完了が可能な2つの方法があり、注釈付きやり方理解を容易にするためには、
ステップ1は、パッケージ依存ジャーを追加します
2ステップ2は、クラスのセクションを作成します。
@Aspect //注解 @Controller パブリッククラスArithmaticCalculateaop { //前置通知@Before(値= "実行(* com.zhiyou100.aop。*。*(..))") (ジョインポイントジョインポイント)前ます。public void { オブジェクト[]引数=のJoinPoint.getArgsを(); 文字列名= JoinPoint.getSignature()のgetName()。 System.out.println( "=== com.zhiyou100 ====" +名+ "======開始===結果" +は、Arrays.asList(引数)); } //后置通知@After(値= "実行(* com.zhiyou100.aop。*。*(..))")定义表达式 公共ボイド(ジョインポイントジョインポイント){後 (= JoinPoint.getSignature文字列名) .getName()。 System.out.println( "=== com.zhiyou100 ====" +名+ "======端===結果")。 @AfterReturning(値= "実行(* com.zhiyou100.aop。*。*(..))"、復帰= "結果") 公共ボイドCC(オブジェクト結果){ するSystem.out.println( "==== ========= "+結果)。 } @AfterThrowing(値= "実行(* com.zhiyou100.aop。*。*(..))"、投げ= "E") 公共ボイドDD(例外e){ System.out.printlnは( "异常了" ); } }
Spring構成ファイル内の3ステップ3開いコメントセクション
< - -オープンパックスキャン!> <コンテキスト:コンポーネントベース・パッケージ・スキャン= "com.zhiyou100.aop" /> <! -オープン注釈をカット- > <AOP:AspectJの-自動プロキシ/>
XMLベースの方法(注釈を除去することができます)
<! -クラスプログラムの定義が通知されます- > <豆ID = "ASD"クラス= "com.zhiyou100.aop.ArithmaticCalculateImp" /> <! -豆クラス定義のセクション- > <= Beanクラス"com.zhiyou100.aop.ArithmaticCalculateaop" ID = "QWE"> </豆> < -プロフィールXML - >! <AOP:config>の < -表現定義されたカットオフ点- >! <AOP:ポイントカット=表現"実行(.. com.zhiyou100.aop * * *(..))" ID = "ZXC" /> < -定義された側面- >! <AOP:アスペクトREF = "QWE"> <! - -事前定義された通知- > <AOP:前METHOD = "前"ポイントカット-REF = "ZXC" /> <AOP:アフターMETHOD = "後"ポイントカット-REF = "ZXC" /> <AOP:アフター戻す方法= "CC"ポイントカット-REF = "ZXC" = "結果"を返す/> </ AOP:態様> </ AOP:設定>