通知(アドバイス)セクション(アスペクト)春のご提供です。しかし、その機能は単純すぎる:ターゲットメソッドに織り込まカットを完了することができ、すべてのターゲットターゲットクラスに織り込まのみカット、。
コンサルタント(アドバイザー)は、スプリングが提供する別のセクションです。これは、より複雑なアスペクト織り機能を完了することができます。PointcutAdvisorを使用すると、特定のエントリポイントを指定することができ、コンサルタントです。通知包装コンサルタントは、通知の異なる種類に基づいて行われます、異なる時点で、異なるエントリポイントに織り込まカットします。
PointcutAdvisorインターフェースは、さらに2つの一般的な実装クラスがあります。
エントリ・ポイント・コンサルタントを一致NameMatchMethodPointcutAdvisor名
エントリ・ポイント・コンサルタントにマッチする正規表現をRegexpMethodPointcutAdvisor
まず、エントリポイントの名前は、メソッドのコンサルタントをマッチング
NameMatchMethodPointcutAdvisor、そのエントリポイントマッチング法顧問の名前です。容器は、プロファイル名で指定された開始点法を設定してもよいです。
コードを変更せず、唯一のプロパティのアドバイスやメソッド名の出発点を通知した後、設定ファイルにコンサルタントを登録することは、それを構成するにmappedName。セクションに作用する、あなたはこのコンサルタントを使用することができます。
図1に示すように、エンティティ・クラス・メソッド
2、エンティティクラスを実装
3、継承 MethodBeforeAdvice、AfterReturningAdvice達成 afterReturning(正面)と前(後)を
4、書き込みapplictionContext.xml、豆タグ
5、テストクラス
6つの結果
第二に、定期的なコンサルタント(顧問)
あるRegexpMethodPointcutAdvisor、正規表現方法の顧問。容器は、正規表現を提供したエントリ・ポイントであってもよいです。
オブジェクトと一致する正規表現は、インターフェースメソッドの名前ではなく、ターゲットクラス名(インタフェースを実装するクラス)であることに留意されたいです。
むしろdoFirstに一致するよりも、このようcom.lmm.aop10.SomeServiceImpl.doFirstとして、フルネームの方法です。
図1に示すように、エンティティ・クラス・メソッド
2、エンティティクラスを実装
3、継承MethodBeforeAdvice、AfterReturningAdvice達成 afterReturning(正面)と前(後)を
4、書き込みapplictionContext.xml、豆タグ
結果