91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

詳解Spring的兩種代理方式:JDK動態代理和CGLIB動態代理

發布時間:2020-08-26 22:58:00 來源:腳本之家 閱讀:157 作者:c. 欄目:編程語言

代理模式

代理模式的英文叫做Proxy或Surrogate,中文都可譯為”代理“,所謂代理,就是一個人或者一個機構代表另一個人或者另一個機構采取行動。在一些情況下,一個客戶不想或者不能夠直接引用一個對象,而代理對象可以在客戶端和目標對象之間起到中介的作用

A. 抽象主題角色

聲明了真實主題和代理主題的共同接口,這樣一來在任何可以使用真實主題的地方都可以是使用代理主題

B. 代理主題(Proxy)角色:

代理主題角色內部含有對真實主題的引用,從而可以在任何時候操作真實主題對象;代理主題角色提供一個與真實主題角色相同的接口,以便可以在任何時候都可以替代真實主題控制對真實主題的引用,負責在需要的時候創建真實主題對象(和刪除真實主題對象);代理角色通常在將客戶端調用傳遞給真實的主題之前或之后,都要執行某個操作,而不是單純地將調用傳遞給真實主題對象。

C. 真實主題角色

定義了代理角色所代表地真實對象

詳解Spring的兩種代理方式:JDK動態代理和CGLIB動態代理

詳解Spring的兩種代理方式:JDK動態代理和CGLIB動態代理

例如:

詳解Spring的兩種代理方式:JDK動態代理和CGLIB動態代理

詳解Spring的兩種代理方式:JDK動態代理和CGLIB動態代理

用動態代理模式重構

詳解Spring的兩種代理方式:JDK動態代理和CGLIB動態代理

JDK動態代理

詳解Spring的兩種代理方式:JDK動態代理和CGLIB動態代理

詳解Spring的兩種代理方式:JDK動態代理和CGLIB動態代理

目標類
攔截器
代理類

總結:1、因為利用JDKProxy生成的代理類實現了接口,所以目標類中所有的方法在代理類中都有。
2、生成的代理類的所有的方法都攔截了目標類的所有的方法。而攔截器中invoke方法的內容正好就是代理類的各個方法的組成體。
3、利用JDKProxy方式必須有接口的存在。
4、invoke方法中的三個參數可以訪問目標類的被調用方法的API、被調用方法的參數、被調用方法的返回類型。

用JDK動態代理模式重構

詳解Spring的兩種代理方式:JDK動態代理和CGLIB動態代理

用JDK動態代理模式重構hibernate事務

詳解Spring的兩種代理方式:JDK動態代理和CGLIB動態代理

cglib動態代理

1、 CGlib是一個強大的,高性能,高質量的Code生成類庫。它可以在運行期擴展Java類與實現Java接口。
2、 用CGlib生成代理類是目標類的子類。
3、 用CGlib生成 代理類不需要接口
4、 用CGLib生成的代理類重寫了父類的各個方法。
5、 攔截器中的intercept方法內容正好就是代理類中的方法體

詳解Spring的兩種代理方式:JDK動態代理和CGLIB動態代理

詳解Spring的兩種代理方式:JDK動態代理和CGLIB動態代理

用cglib動態代理模式重構hibernate事務

詳解Spring的兩種代理方式:JDK動態代理和CGLIB動態代理

spring兩種代理方式

1、若目標對象實現了若干接口,spring使用JDK的java.lang.reflect.Proxy類代理。
優點:因為有接口,所以使系統更加松耦合
缺點:為每一個目標類創建接口

2、若目標對象沒有實現任何接口,spring使用CGLIB庫生成目標對象的子類。
優點:因為代理類與目標類是繼承關系,所以不需要有接口的存在。
缺點:因為沒有使用接口,所以系統的耦合性沒有使用JDK的動態代理好。

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持億速云。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

达尔| 布拖县| 祁阳县| 宜州市| 天台县| 博湖县| 莲花县| 孟村| 聊城市| 天峻县| 霍邱县| 大化| 商河县| 疏附县| 静海县| 集安市| 义马市| 衡阳市| 简阳市| 三穗县| 冷水江市| 合山市| 临邑县| 新昌县| 洮南市| 涟水县| 新乐市| 民乐县| 余江县| 定州市| 巴塘县| 密山市| 平山县| 东阿县| 疏勒县| 启东市| 安顺市| 瓦房店市| 德格县| 出国| 东港市|