デザインパターンに春IOCデザイン:工場出荷時のモード、テンプレートメソッド、シングルトン
デザインパターンに関連した春AOP:工場出荷時のモデル、プロキシモード
1、春AOPの目標
プログラム全体に分散横断的関心事は、分社、及び集中的発現に
プログラミングユニットテストを簡素化し、開発者はむしろ非複素関数コードよりも、ビジネスロジックに集中することができます
シナリオ:
ジャーナル
セキュリティ
業務
2、AOPコアコンセプト
アドバイス(通知)
メソッド呼び出しの注入を中心に行われ、接続の時点で定義された行動、
ポイントカット(カットポイント)
接続の時点でどのアプリケーションが通知を決定します
顧問(通知)
アドバイスの組み合わせとポイントカット
3、Spirng AOP達成
ProxyFactoryBean
-構築するFactoryBeanの実装 のSpringたBeanFactoryでビーンに基づいてAOPプロキシを。
-春AOPの実装の基本となるソースと
4、ProxyFactoryBean典型的な構成
5、ProxyFactoryBean設定
ターゲット
対象読者は、あなたはセクションを強化する必要があります
proxyInterfaces
実施プロキシオブジェクトインターフェイス
interceptorNames
通知(顧問)のリスト、通知は、通知(助言)とポイントカット(ポイントカット)を含み、
6、ProxyFactoryBean役割
一般的には、以下の文章可能なProxyFactoryBeanの役割を概説します
ターゲット・オブジェクトのプロキシオブジェクトを作成するために、対象物は、適切なエージェント・オブジェクト・メソッドへのコールするメソッドをコールし、プロキシオブジェクトメソッドの呼び出しの前と後の各通知マッチングのための定義された方法を実行することができます。
7、ターゲットプロキシオブジェクトを作成します
春は2つの方法で対象オブジェクトを作成します
JDKダイナミックプロキシ
CGLIB
8、JDKダイナミックプロキシー
プロキシオブジェクトを生成するために、ターゲットオブジェクトがインタフェースを実装する場合、スプリングは、ターゲット・オブジェクトとしてJDKダイナミックプロキシを通過します
9、DefaultAopProxyFactory
公共AopProxy createAopProxy(AdvisedSupportの設定)がスローAopConfigException { IF(config.isOptimize()|| config.isProxyTargetClass()|| hasNoUserSuppliedProxyInterfaces(設定)){ クラスtargetClass = config.getTargetClass()。 IF(targetClass == NULL){ (「TargetSourceがターゲットクラスを決定することはできません:」+新しいAopConfigExceptionを投げる 「インタフェースまたはターゲットがプロキシの作成に必要とされます」)。 } IF(targetClass.isInterface()){ (設定)新しいJdkDynamicAopProxyを返します。 } (!cglibAvailable)場合は{ (新しいAopConfigExceptionを投げる } 「ことができませんプロキシターゲットクラスCGLIB2が利用できないため。」+ 「クラスパスにCGLIBを追加またはプロキシインターフェイスを指定します。」)。 CglibProxyFactory.createCglibProxy(設定)を返します。 } 他{ 新しいJdkDynamicAopProxy(設定)を返します。 } }