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

网站打开速度加快怎么做法拍重庆网站

网站打开速度加快怎么做,法拍重庆网站,报告,北京社保网上服务平台官网看了这篇文章#xff0c;你会对静态代理模式#xff0c;JDK 动态代理模式和 CGLIB 动态代理模式有个很清晰的认识。01、简介什么是代理模式代理模式也称为委托模式#xff0c;属于结构型模式之一。在某些情况下#xff0c;一个对象不适合或者不能直接引用另一个对象#x… 看了这篇文章你会对静态代理模式JDK 动态代理模式和 CGLIB 动态代理模式有个很清晰的认识。01、简介什么是代理模式代理模式也称为委托模式属于结构型模式之一。在某些情况下一个对象不适合或者不能直接引用另一个对象而代理对象可以在客户端和目标对象之间起到中介的作用比如我们生活中的邮局快递公司婚介所等等。代理模式分类代理模式分为静态代理模式和动态代理模式。静态代理是由程序员创建或特定工具自动生成源代码再对其编译。在程序运行之前代理类.class文件就已经被创建了动态代理是在程序运行时通过java反射机制动态创建的。代理模式的目的代理模式主要有两个目的一保护目标对象二增强目标对象。02、静态代理模式静态代理模式的话我模拟一个古代结婚的场景。场景是这样的在古代某家的公子看上了别家的姑娘一般都是家里的大人去姑娘的家里提亲双方父母同意了然后就拜堂成婚后面要宴请亲朋好友。这里这个公子只需要拜堂成婚就行了至于提亲和宴请亲友都是父母操办的。我们用代码来模拟一下这个场景。首先我们来建个 Person 接口public interface Person {/*** 人有很对行为,这里我们用到的是结婚*/void marry(); } 然后这家公子要成亲我们建个 Son 类实现 Person 接口public class Son implements Person {Overridepublic void marry() {System.out.println(我终于结婚了);} } 父亲帮儿子提亲,建个 Father 类:public class Father {private Son son;public Father(Son son){this.son son;}public void marry(){System.out.println(父亲上门提亲);this.son.marry();System.out.println(父亲宴请亲友);} } 最后是测试代码public class Test {public static void main(String[] args) {Father father new Father(new Son());father.marry();} } 输出父亲上门提亲 我终于结婚了 父亲宴请亲友 代码写完了大家有没有发现静态代理模式的一个缺点。那就是单一一个类只能代理一个目标对象。比如上面的场景父亲只能为自己的儿子提亲不能为别人家的孩子提亲。下面我们来看看动态代理是怎么解决这个问题的。03、动态代理模式动态代理模式分为 JDK 动态代理和 cglib 动态代理两种。这里先用 JDK 动态代理的方式来模拟一个通过婚介所找朋友的场景。先将 Person 接口改动下public interface Person {/*** 找朋友*/void findFriend(); } 然后是婚介所 JDKMatrimonialAgency 类public class JDKMatrimonialAgency implements InvocationHandler {//被代理的对象把引用给保存下来private Object target;public Object getInstance(Object target) throws Exception{this.target target;Class? clazz target.getClass();return Proxy.newProxyInstance(clazz.getClassLoader(),clazz.getInterfaces(),this);}public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {before();Object obj method.invoke(this.target,args);after();return obj;}private void before(){System.out.println(这里是婚介所,请提供你的需求);}private void after(){System.out.println(已经找到合适的,尽快安排你相亲);} } JDK 动态代理主要是实现 InvocationHandler 接口并实现 invoke 方法然后创建 Customer 类public class Customer implements Person {Overridepublic void findFriend() {System.out.println(我要找一个胸大,腿长又好看的美女);} } 最后测试类public class Test {public static void main(String[] args) {try {Person obj (Person)new JDKMatrimonialAgency().getInstance(new Customer());obj.findFriend();} catch (Exception e) {e.printStackTrace();}} } 看下结果这里是婚介所,请提供你的需求 我要找一个胸大,腿长又好看的美女 已经找到合适的,尽快安排你相亲 然后我们用 CGLIB 来实现如果不是springspring已经集成了 CGLIB 环境需要先引入 jar 包dependencygroupIdcglib/groupIdartifactIdcglib/artifactIdversion3.3.0/version /dependency 然后加一个 CglibMatrimonialAgency 类public class CglibMatrimonialAgency implements MethodInterceptor {public Object getInstance(Class? clazz) throws Exception{Enhancer enhancer new Enhancer();//要把哪个设置为即将生成的新类的父类enhancer.setSuperclass(clazz);enhancer.setCallback(this);return enhancer.create();}Overridepublic Object intercept(Object o, Method method, Object[] objects, MethodProxy methodProxy)throws Throwable {//业务的增强before();Object obj methodProxy.invokeSuper(o,objects);after();return obj;}private void before(){System.out.println(这里是婚介所,请提供你的需求);}private void after(){System.out.println(已经找到合适的,尽快安排你相亲);} } CGLIB 主要是实现 MethodInterceptor 并实现 intercept 方法。看下结果这里是婚介所,请提供你的需求 我要找一个胸大,腿长又好看的美女 已经找到合适的,尽快安排你相亲 04、JDK和CGLIB动态代理对比JDK 动态代理是实现了被代理对象的接口CGLib 是继承了被代理对象。JDK 和 CGLib 都是在运行期生成字节码JDK 是直接写 Class 字节码CGLib 使用 ASM框架写 Class 字节码Cglib 代理实现更复杂生成代理类比 JDK 效率低。JDK 调用代理方法是通过反射机制调用CGLib 是通过 FastClass 机制直接调用方法CGLib 执行效率更高。05、代理模式的优缺点优点:降低耦合度,扩展性好代理对象将代理对象和目标对象分离,起到保护目标对象的作用可以对目标对象的功能增强缺点:增加类的数量因为会调用增强方法,所以会造成处理速度慢增加了系统的复杂度这是好的架构都会有的缺点比如spring近期热文 面试珍藏最常见的200多道Java面试题被一个熟悉的面试题问懵了String...面试官如何实现幂等性校验【END】关注下方二维码订阅更多精彩内容朕已阅
http://wiki.neutronadmin.com/news/174404/

相关文章:

  • 在discuz做网站搭建企业交流平台
  • 搭建网站要多久个人网站注册平台要多少钱
  • 做网站ps的图片公众平台是什么
  • 深圳专业做网站专业公司软件开发工具包sdk
  • 蓝韵官方网站企业网站建设功能模块
  • 有哪些做企业点评的网站石家庄网站建设外包公司
  • 1688网站建设方案书模板免费海外网站建设
  • 内江市网站建设建网通
  • 深圳做模板网站的公司网站网页直播怎么做
  • 专门做恐怖电影网站关于志愿者网站开发的论文
  • 找南昌网站开发公司电话wordpress主题文件夹在哪
  • 移动网站建站网站流量报表
  • 京东联盟怎么做网站无烟锅网站规划与建设
  • 电商网站策划网站后台管理要求
  • 网站开发的流程建设摩托车公司官方网站
  • 英文网站建设网站站群宝塔批量建站
  • 网站开发设计文案书店网站策划书
  • 怎样将视频放在网站里做网站系统建设招标公告
  • 那种非法网站怎么做的网站域名备案查询系统
  • 酒店网站开发合同有网络网站打不开怎么回事
  • 巨鹿网站建设公司很简单的做设计的网站
  • 企业网站的建设包括页面模板在公号什么地方显示
  • 网站排名如何稳定长沙 网站建设公司
  • 女人能做网站开发吗vs2017手机网站开发
  • 如何查找高权重网站济南建设局
  • 做电影网站服务器需求比较好网站搭建公司
  • 被攻击网站怎么做自己网站里的资讯
  • 宁波高质量品牌网站设计厂家app开发公司图片
  • 电子商务网站的建设心得体会金华高端网站建设公司
  • 广州高端模板网站在华图做网站编辑