当前位置: 首页 > wzjs >正文

个人简历网站开发网络策划公司

个人简历网站开发,网络策划公司,深圳公司网站推广,做网站租服务器吗应友友的要求,本章是对于Java的CGLIB动态代理进行一个通俗的解释,希望能够帮助到奋斗的你,一起加油!!! 🌟 通俗理解CGLIB动态代理 想象你有一个玩具机器人(原始类)&…

应友友的要求,本章是对于Java的CGLIB动态代理进行一个通俗的解释,希望能够帮助到奋斗的你,一起加油!!!

🌟 通俗理解CGLIB动态代理

想象你有一个玩具机器人(原始类),现在你想给它增加新功能但又不想拆开它改造。CGLIB就像是一个"魔法复制机":

  1. 复制并增强:它复制你的机器人,在新机器人里加入额外功能(如发光、说话)
  2. 保持原样:原来的机器人完全没被改动
  3. 随时调用:当你使用这个"增强版机器人"时,它会先执行新功能,再执行原来的功能

🆚 和JDK动态代理的区别

  • JDK代理:需要机器人有"说明书"(接口),按照说明书复制
  • CGLIB代理:直接复制机器人本身,不需要说明书

🔧 使用CGLIB的步骤

1. 添加CGLIB依赖(Maven项目)

<dependency><groupId>cglib</groupId><artifactId>cglib</artifactId><version>3.3.0</version>
</dependency>

2. 准备一个普通类(没有接口也行)

class Cat {public void eat() {System.out.println("小猫吃鱼");}public final void sleep() {  // final方法不能被代理System.out.println("小猫睡觉");}
}

3. 创建代理

import net.sf.cglib.proxy.Enhancer;
import net.sf.cglib.proxy.MethodInterceptor;
import net.sf.cglib.proxy.MethodProxy;public class CglibDemo {public static void main(String[] args) {// 1. 创建增强器Enhancer enhancer = new Enhancer();// 2. 设置父类(要代理的类)enhancer.setSuperclass(Cat.class);// 3. 设置回调(相当于JDK代理的InvocationHandler)enhancer.setCallback(new MethodInterceptor() {@Overridepublic Object intercept(Object obj, Method method, Object[] args, MethodProxy proxy) throws Throwable {System.out.println("--- 喂食前洗手 ---");  // 前置增强Object result = proxy.invokeSuper(obj, args);  // 调用原方法System.out.println("--- 清理猫碗 ---");    // 后置增强return result;}});// 4. 创建代理对象Cat proxyCat = (Cat) enhancer.create();// 5. 使用代理对象proxyCat.eat();// 输出:// --- 喂食前洗手 ---// 小猫吃鱼// --- 清理猫碗 ---proxyCat.sleep();  // final方法不会被代理// 输出:小猫睡觉(没有增强效果)}
}

⚠️ 注意事项

  1. 不能代理final方法:就像你不能改造机器人的固定部件
  2. 目标类要有无参构造方法:复制机器需要原始蓝图
  3. 性能比JDK代理略高:但创建代理对象较慢

🌰 实际应用场景

  1. 在Spring AOP中,当目标类没有实现接口时
  2. 需要对普通类的方法进行监控、日志记录
  3. 实现方法调用拦截和功能增强

就像给你的原始机器人加上了"自动清洁"、"语音提醒"等功能,而原来的机器人完全不需要修改!


文章转载自:

http://CHiU2f2j.kmLmf.cn
http://hdS2tZz3.kmLmf.cn
http://xw8hE60H.kmLmf.cn
http://kzuOMq3n.kmLmf.cn
http://Cmk7ueck.kmLmf.cn
http://xgK3MuLG.kmLmf.cn
http://dGuAUM2F.kmLmf.cn
http://Y3Gy67rS.kmLmf.cn
http://ZJ4SSQ5l.kmLmf.cn
http://GAA406Vg.kmLmf.cn
http://W4lFj67I.kmLmf.cn
http://mqTNC21d.kmLmf.cn
http://NLqOhwyK.kmLmf.cn
http://RRNbJoRe.kmLmf.cn
http://B9oP64tz.kmLmf.cn
http://THia1BBi.kmLmf.cn
http://bGTwzyyW.kmLmf.cn
http://b815hB9A.kmLmf.cn
http://BMsyM5de.kmLmf.cn
http://no8gvMZZ.kmLmf.cn
http://DV8RYuUg.kmLmf.cn
http://BjGEWxdz.kmLmf.cn
http://iqZFBwX2.kmLmf.cn
http://uzs37jzP.kmLmf.cn
http://VVxbGd5P.kmLmf.cn
http://BGISBIS8.kmLmf.cn
http://DQCOQzfQ.kmLmf.cn
http://4vE6TGtM.kmLmf.cn
http://X20gD9cL.kmLmf.cn
http://qb7fM4h7.kmLmf.cn
http://www.dtcms.com/wzjs/702726.html

相关文章:

  • 河南做网站多少钱中国能源建设集团有限公司电子采购平台
  • wordpress做登录潍坊seo培训
  • 怎样找到网站后台入口视频解析wordpress
  • 8黄页网站建设苏州宿迁工业园区
  • 不用iis建立网站国外免费个人空间
  • 网站备案加速网站提供的链接
  • 新手搭建网站教程视频263企业邮箱登官网
  • 公司简介网站怎么做国外psd免费下载网站
  • 广元建设公司网站个人二级网站怎么做
  • 如何在自己网站添加链接管理软件开发平台
  • 琪恋网站建设王业美
  • excel做网站数据库做图素材网站
  • 境外网站开发自我介绍面试模板
  • 专业的企业进销存软件制造厂家海口百度seo
  • 给女朋友做的网站响应式网站图片代码
  • 郑州网站建设知乎大型购物网站开发
  • 无锡响应式网站制作宣传网站建设背景
  • 保定有那些网站latex wordpress
  • 宁德商城网站建设苏州创建网站
  • 完整网站设计企业门户网站 意义
  • 网站名字 备案新手创业开什么店最好
  • 雄安智能网站建设方案lamp网站开发实战
  • 福州做推广有哪些网站需要手机号注册的网站
  • 青海省建设厅网站莱芜信息港官网
  • 定制型网站建设合同范本门户网站建设方案 模板
  • 做枸杞的网站网站中文域名好吗
  • 单页网站的域名展示型手机网站模板
  • 网站备案号被收回西宁网站系统建设
  • 阿里云淘宝客网站建设教程口碑营销的经典案例
  • rp做网站原型要缩小尺寸吗内部劵网站怎么做