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

网站上怎么做支付接口什么程序做教育网站好

网站上怎么做支付接口,什么程序做教育网站好,宠物网站建设论文总结,爱心建站网在过去的几周中#xff0c;我展示了如何使用Java Reflection API和cglib创建代理对象。 在本文中#xff0c;我将向您展示如何使用djcproxy做到这一点。 哦#xff0c;不是#xff0c;另一个代理实现#xff01; 除了我创建此代理的自私事实之外#xff0c;还要写些什么… 在过去的几周中我展示了如何使用Java Reflection API和cglib创建代理对象。 在本文中我将向您展示如何使用djcproxy做到这一点。 哦不是另一个代理实现 除了我创建此代理的自私事实之外还要写些什么呢 关键是这是一个用Java编写的代理它创建了可以检查的Java代码。 它还可以即时编译和加载创建的Java类因此它也可以使用但主要优点是您可以轻松了解动态代理的工作原理。 至少比深入研究cglib的代码要容易得多后者直接创建字节码。 如何使用它 您可以从github获取源代码也可以将依赖项添加到项目maven pom中。 dependencygroupIdcom.javax0/groupIdartifactIddjcproxy/artifactIdversion2.0.3/version /dependency 之后您可以使用以下代码 class A {public int method() {return 1;} } class Interceptor implements MethodInterceptor {Overridepublic Object intercept(Object obj, Method method, Object[] args,MethodProxy mproxy) throws Exception {if (method.getName().equals(toString)) {return interceptedToString;}return 0;} }...A a new A();ProxyFactoryA factory new ProxyFactory();A s factory.create(a, new Interceptor()); 可以在GitHub中的项目测试中找到此代码。 这是一个易于编辑的易于编辑的缩写版本。 类“ A”是原始类当我们要创建新的代理对象时我们将创建一个已存在对象的代理。 这不同于反射或屈服。 如果使用cgilib您将创建一个代理对象它“包含”原始对象。 从OO术语来看它并不是真正的包含因为代理类扩展了原始类。 但是由于此扩展代理对象也是原始类的实例。 Cgilib并不真正在乎您要拦截哪个类实例对象。 如果需要可以将对任何对象实例的引用注入到拦截器中。 Djcproxy使用了一种不同的方法它可以为您做到这一点在拦截器中您将获得此对象作为参数传递。 这就是为什么您必须在第20行实例化该对象的原因。 Interceptor实现了库中也提供的接口MethodInterceptor 。 它只有一种方法 intercept 在调用代理对象方法时调用。 参数是 obj –原始对象 method –在代理对象中调用的方法 args –传递给代理对象上的方法调用的参数。 注意原始参数将被装箱。 mproxy –方法代理可用于在原始对象上或仅在相同类型的任何其他对象上调用方法 这就是关于如何使用该库的全部内容。 接下来的事情是查看生成的内容以便您可以更好地了解代理的工作方式。 即使您使用其他代理洞察力也不会伤害您。 当您了解所使用的库的原理时很多时候调试或仅生成更好的代码会更容易。 尽管cglib为您提供了一个静态工厂方法来创建新对象但djcproxy要求您创建一个代理工厂。 这是在21上方的行上显示的。如果要像使用cglib一样使用它则可以在要使用其工厂的类中声明一个静态ProxyFactory字段。 另一方面可能在代码的不同部分具有不同的工厂。 尽管它的优点很少但是我仍然相信它比提供静态工厂方法更干净。 代理如何工作 此程序包中的另一件事是它使您可以访问生成的源。 您可以插入行 String generatedSource factory.getGeneratedSource();System.out.println(generatedSource); 打印出生成的代理类这是经过某种格式设置的 package com.javax0.djcproxy;class PROXY$CLASS$A extends com.javax0.djcproxy.ProxyFactoryTest.A implements com.javax0.djcproxy.ProxySetter {com.javax0.djcproxy.ProxyFactoryTest.A PROXY$OBJECT null;com.javax0.djcproxy.MethodInterceptor PROXY$INTERCEPTOR null;public void setPROXY$OBJECT(java.lang.Object PROXY$OBJECT) {this.PROXY$OBJECT (com.javax0.djcproxy.ProxyFactoryTest.A) PROXY$OBJECT;}public void setPROXY$INTERCEPTOR(com.javax0.djcproxy.MethodInterceptor PROXY$INTERCEPTOR) {this.PROXY$INTERCEPTOR PROXY$INTERCEPTOR;}PROXY$CLASS$A() {super();}private com.javax0.djcproxy.MethodProxy method_MethodProxyInstance null;Overridepublic int method() {try {if (null method_MethodProxyInstance) {method_MethodProxyInstance new com.javax0.djcproxy.MethodProxy() {public java.lang.Object invoke(java.lang.Object obj, java.lang.Object[] args) throws Throwable {return ((com.javax0.djcproxy.ProxyFactoryTest.A) obj).method();}};}return (int) PROXY$INTERCEPTOR.intercept(PROXY$OBJECT, PROXY$OBJECT.getClass().getMethod(method, new Class[]{}),new Object[]{}, method_MethodProxyInstance);} catch (Throwable e) {throw new RuntimeException(e);}}... other overridden methods deleted ...} 请注意对于此生成的代码类A是ProxyFactoryTest的静态嵌套类。 有趣的代码是方法method()的重载。 对不起这个名字。对于一个什么都不做的方法我有一个更好的名字。我不MethodProxy 。让我们跳过该部分检查该方法是否已经存在MethodProxy实例如果缺少则创建一个。 方法method()实际上会调用我们定义的拦截器对象并传递代理对象反射方法对象参数以及方法代理。 什么是方法代理 该名称可能首先引起混淆因为我们已经有一个“对象”代理。 原始类的每个方法都有一个单独的方法代理。 这些可用于调用原始方法而无需进行反射调用。 这加快了代理的使用。 您还可以在cglib中找到此调用和类似的机制。 笔记 该实现有一些流程例如后方法代理实例化实际上没有优势但同时在代理的多线程执行情况下可能会受到损害。 还可以创建一个不仅扩展类而且实现任意接口的代理对象也许某些扩展类甚至没有实现。 该实现在github上也有一些其他业余爱好开源项目中使用我将来可能会写有关该项目的信息。 它们比生产代码更具说明性教育性和概念证明性项目。 如果您对实施想法或任何意见有任何意见请给我您的意见。 翻译自: https://www.javacodegeeks.com/2016/02/creating-proxy-object-using-djcproxy.html
http://www.zqtcl.cn/news/621101/

相关文章:

  • 受欢迎的常州做网站网站制作ppt
  • 物流网站建设实例 天堂资源帝
  • 太原建设厅官方网站wordpress 导入工具
  • 做网站树立品牌形象建设了网站后怎么用谷歌引流
  • 专业公司网站建设建设人才库网站
  • 怎么自己做直播网站吗手机免费建站app
  • 惠州规划建设局网站seo网站关键词排名优化公司
  • 关键词检测百度seo一本通
  • 做效果图的外包网站徐州低价seo
  • xp系统中做网站服务器吗网站设计版权
  • 化妆品网站建设经济可行性分析怎么做好网站
  • 软件企业网站建设栏目结构图服务公司有哪些
  • 郑州专业做淘宝网站推广哪些公司需要网站开发工程师
  • 如何为企业做网站单页网站推广
  • 做公众号封面图的网站凡客精选app
  • 张家界做旅游网站网业小说畅读服务
  • 短租网站那家做的好网络设计工作好找吗
  • 企业建网站哪家好网络书签 wordpress
  • 网站策划的工作职责有关网站开发的创意
  • 上国外网站dns如何免费做网站推广
  • wordpress导航站的源码网页设计与制作微课教程第4版李敏
  • 建站的好公司wordpress 小工具 调用
  • 郑州高考网站建设wordpress调用多个底部
  • 在线做爰直播网站dw制作网页步骤
  • 视频网站 php源码深圳高端网站建设招聘
  • 企业网站服务费怎么做记账凭证那个网站上有打码的任务做
  • 沈阳做网站优化的公司长春网络建站模板
  • 秒收网站鞍山58同城
  • 模板网站建设方案wordpress系统在线升级
  • 男女做爰视频网站在线视频seo也成搜索引擎优化