プログラミングのパラダイムの概要:カットのためのプロセス指向、オブジェクト指向プログラミング機能、イベント駆動型プログラミング、など、
AOPとは何ですか?
春AOPは、OOPが、補完的との関係に代わるものではありません、アスペクト指向プログラミングではなく、プログラミング言語を使ってプログラミングパラダイムは、それだけですべての問題ではなく、特定の問題を解決することができます。
AOPの心:
あなた自身を繰り返してはいけないDRY
懸念のSoCの分離
AOPのメリット:
懸念/横断ロジックに集中、あなたは簡単に追加、削除キーを、低侵襲性、コードの可読性と保守性を向上させることができます。
AOPのアプリケーションのシナリオ:
アクセス制御、キャッシュ制御、トランザクション制御、監査ログ、パフォーマンスの監視、分散型追跡、例外処理。
ポイントカット式
1、指定子
マッチング方法:実行()
マッチ・ノート:@target @args @within @annoation @
マッチパケット/タイプ@within
この()豆()ターゲットにマッチするオブジェクト()
パラメータの引数をマッチング()
2、ワイルドカード:* + ..
3、演算子: && || !
ウィービング時間:
エージェントの選択:ターゲットオブジェクトが、インターフェイスを実装し、対象オブジェクトがインタフェースを実装している場合、動的プロキシをCGLIBが、力のCGLIBプロキシ、プロキシCGLIBを使用しない場合は、ターゲットオブジェクトは、デフォルトのJDKの動的プロキシを使用して、インターフェイスポートを実装している場合。
動的プロキシを使用するように強制開放CGLIB:出発化合物プラス@EnableAspectJAutoProxy(proxyTargetClass = TRUE)モジュール
機能の重ね合わせを実現するためにどのようにAOP Chain of Responsibilityパターンを:
注意事項:
1、AOPにはない重要なビジネス・ロジック
2、静的最終プライベートメソッドを傍受することはできません
次いで内部なしで、コールする新しいクラスと、2を呼び出し、1、ApplicationContextHolderは豆を取得:オブジェクトがこのことから、むしろプロキシSpringコンテナオブジェクトより、二つの溶液がある内部コール:3は、インターセプトは内部メソッドを呼び出すことができません呼び出します。