Java動靜態代理的區別,什么場景使用?


    靜態代理通常只代理一個類,動態代理是代理一個接口下的多個實現類

    靜態代理事先要知道代理的是什么 ,而動態代理不知道要代理什么東西,只有在運行時才知道。

    動態代理是實現JDK里面的InvocationHandler接口里面的invoke方法,但注意的是代理的是接口,也就是說你的業務類必須要實現接口,通過Proxy里的newProxyInstance得到代理對象。

    還有一種動態代理CGLIB,代理的是類,不需要業務繼承接口,通過派生的子類來實現代理。通過在運行時,動態修改字節碼達到修改類的目的。

    AOP編程就是基於動態代理實現的,比如著名的Spring框架、Hibernate框架等等都是動態代理的使用例子


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM