2024-04-02 22:18阅读: 37评论: 0推荐: 0

【知识点】Java代理实现方式

Java 代理的几种实现方式

静态代理

通过创建一个代理类来控制对目标对象的访问(也就是手动编写一个代理类)。

静态代理的优点是易于理解和实现,缺点是每个接口都需要定义一个代理类,而且功能较弱。

动态代理

动态代理分两种,Proxy接口代理和CGLib代理

接口代理

Proxy 代理是JDK内置代理方式,通过接口实现,使用反射动态实现一个实现相同接口的代理类,来达到代理功能。

因此只能代理接口(或者说实现接口的类)。

CGLib

CGLib(Code Generation Library)通过ASM动态生成子类的方式进行代理,因此不能代理final

ASM:Assembly,字节码修改技术


Spring 中的动态代理:

Spring 默认使用JDK代理方式,如果类没有实现接口则会选择CGLib进行代理。

使用JDK Proxy类进行代理不需要引入第三方库,同时类也需要实现一个接口,符合Java面向接口编程的最佳实践。

本文作者:编程随写

本文链接:https://www.cnblogs.com/code-blog/p/18111638

版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。

posted @   code-blog  阅读(37)  评论(0编辑  收藏  举报
点击右上角即可分享
微信分享提示
💬
评论
📌
收藏
💗
关注
👍
推荐
🚀
回顶
收起