日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

动态代理的两种方式_动态代理是基于什么原理?

發布時間:2025/3/20 编程问答 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 动态代理的两种方式_动态代理是基于什么原理? 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

代理模式

給某個對象提供一個代理對象,并由代理對象控制對于原對象的訪問。

什么是動態代理

運行時動態生成代理類。

動態代理我們需要些什么

1.業務接口(Interface)

業務的抽象表示。

2.業務具體實現類(concreteManager)

實現業務接口,執行具體的業務操作。

3.業務代理類($proxy,在運行的時候動態生成的類)

進行業務代理,調用業務代理操作類。

4.業務代理操作類(proxyHandler,實現了InvocationHandler接口的類)

代理方法的直接調用者,通過InvocationHandler中的invoke方法直接發起代理。

5.客戶端調用對象(client)

發起業務。

Java動態代理、cglib動態代理

按照代理的創建時期,代理類可以分為兩種:

靜態代理:由程序員創建或特定工具自動生成源代碼,再對其編譯。在程序運行前,代理類的.class文件就已經存在了。

動態代理:在程序運行時,運用反射機制動態創建而成。

動態代理是基于什么原理?

動態代理是基于反射機制,在程序運行時,動態構建代理、動態處理代理方法調用的機制。很多場景都是利用類似機制做到的,比如用來包裝RPC調用、面向切面的編程(AOP)。

實現動態代理的方式很多,比如JDK 自身提供的動態代理,就是主要利用了上面提到的反射機制。還有其他的實現方式,比如利用更高性能的字節碼操作機制,CGLIB(基于ASM)。

代理機制

首先,動態代理是一個代理機制。

代理可以看作是對調用目標的一個包裝,這樣,我們對目標代碼的調用不是直接發生的,而是通過代理完成的。

通過代理可以讓調用者與實現者之間解耦。比如進行RPC 調用,框架內部的尋址、序列化、反序列化等,對于調用者往往是沒有太大意義的,通過代理,可以提供更加友好的界面。

總結

以上是生活随笔為你收集整理的动态代理的两种方式_动态代理是基于什么原理?的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。