亚洲精品久久久久久第一页-人妻少妇精彩视品一区二区三区-91国产自拍免费视频-免费一级a在线播放视频正片-少妇天天日天天射天天爽-国产大屁股喷水视频在线观看-操美女骚穴抽插性爱视频-亚洲 欧美 中文字幕 丝袜-成人免费无码片在线观看

一般代理和全權代理的區(qū)別 代理方式有幾種


一般代理和全權代理的區(qū)別 代理方式有幾種

文章插圖
代理模式的定義
代理模式(Proxy Pattern)是指為其他對象提供一種代理,以控制對這個對象的訪問 。
代理對象在客服端和目標對象之間起到中介作用 。
屬于結構型設計模式 。
生活中的代理模式
代理模式的適用場景
保護目標對象
增強目標對象
靜態(tài)代理
顯式聲明被代理對象
動態(tài)代理
動態(tài)配置和替換被代理對象
JDK動態(tài)代理的實現原理
1、拿到被代理類的引用,并且獲取它的所有的接口(反射獲?。?。
2、JDK Proxy類重新生成一個新的類,實現了被代理類所有接口的方法 。
3、動態(tài)生成Java代碼,把增強邏輯加入到新生成代碼中 。
4、編譯生成新的Java代碼的class文件 。
5、加載并重新運行新的class,得到類就是全新類 。
CGLib動態(tài)代理容易踩的坑
1、無法代理final修飾的方法
CGLib和JDK動態(tài)代理對比
1.JDK動態(tài)代理是實現了被代理對象的接口,CGLib是繼承了被代理對象 。
2.JDK和CGLib都是在運行期生成字節(jié)碼,JDK是直接寫Class字節(jié)碼,CGLib使用ASM框架寫Class字節(jié)碼,Cglib代理實現更復雜,生成代理類比JDK效率低 。
3.JDK調用代理方法,是通過反射機制調用,CGLib是通過
FastClass機制直接調用方法,CGLib執(zhí)行效率更高.
代理模式的優(yōu)點
代理模式能將代理對象與真實被調用的目標對象分離 。
一定程度上降低了系統(tǒng)的耦合程度,易于擴展 。
代理可以起到保護目標對象的作用 。
增強目標對象的職責
代理模式的缺點
代理模式會造成系統(tǒng)設計種類的數目增加
在客戶端和目標對象之間增加了一個代理對象,會造成請求處理速度變慢 。
增加了系統(tǒng)的復雜度 。
Spring中的代理選擇原則
1、當Bean有實現接口時,Spring就會用JDK的動態(tài)代理 。
2、當Bean沒有實現接口時,Spring選擇CGLib 。
3、Spring可以通過配置強制使用CGLib,只需在Spring的配置文件中加入如下代碼:
<aop:aspectj-autoproxy proxy-target-class=”true”/>


    以上關于本文的內容,僅作參考!溫馨提示:如遇健康、疾病相關的問題,請您及時就醫(yī)或請專業(yè)人士給予相關指導!

    「愛刨根生活網」www.malaban59.cn小編還為您精選了以下內容,希望對您有所幫助: