当前位置:首页 > CN2资讯 > 正文内容

java 代理商系统设计 java编写代理服务

9小时前CN2资讯

1.静态代理

     只能静态的代理某些类或某些方法,功能较弱,但是编码简单,一般不推荐使用

      interface A 定义功能 ,

      ClassB implement interface A (实现功能),

     代理类ProxyClass  implement interface A ,构造方法里初始化 interface A类型的对象,然后重写实现功能(调用接口A中的方法)

     使用:创建代理类ProxyClass的对象(用ClassB的对象来初始化)

   简单继承,聚合接口对象(多态)  两种方式

2.Proxy动态代理 (spring aop的主要原理,cglib也有使用)

    与静态代理相比,动态代理有更多优势,动态代理不仅不需要定义代理类,甚至可以在运行时指定代理类的执行逻辑,从而大大提升系统的灵活性。

    JDK自带,不需要第三方依赖,可以对多个不同接口进行增强,通过反射读取注解时,只能读取到接口上的注解

    原理:面向接口,只能对被实现的借口中定义的方法进行增强。

                在java的java.lang.reflect包下提供了一个Proxy类和一个InvocationHandler接口,通过这个类和这个接口可以生成JDK动态代理类和动态代理对象

  使用:

(1)和静态代理相同,首先定义一个接口

(2)创建被代理的类

(3)创建代理类,这个类实现InvocationHandler接口(重写 invoke 方法),并持有一个被代理类的对象,InvocationHandler中有一个invoke方法,所有执行代理对象的方法都会被替换成执行invoke方法。然后通过反射在invoke方法中执行代理类的方法。在代理过程中,在执行代理类的方法前或者后可以执行自己的操作,这就是spring aop的主要原理。

(4)创建动态代理对象

3.CGLIB动态代理(子类代理)

   是借助ASM来实现的

特点:需要导入第三方依赖(cglib的jar包包含在Spring的核心包中),

           面向父类的动态代理,对类(不是某个接口的实现类)进行增强

原理:面向父类,通过子类继承父类并重写父类方法实现增强

实现方式:通过在内存中构建一个子类,并在子类中采用方法拦截的技术拦截所有父类方法的调用,然后加入自己需要的操作。因为使用的是继承的方式,所以不能代理final 类。

实现方法:

(1)创建被代理类

(2)创建代理工厂类,实现 MethodInterceptor,用于方法的拦截回调


总结:Proxy动态代理与CGLib动态代理都是实现Spring AOP的基础。

          如果加入容器的目标对象有实现接口,用动态代理,

          如果目标对象没有实现接口,用Cglib代理。

 

 

    你可能想看:

    扫描二维码推送至手机访问。

    版权声明:本文由皇冠云发布,如需转载请注明出处。

    本文链接:https://www.idchg.com/info/24754.html

    分享给朋友:

    “java 代理商系统设计 java编写代理服务” 的相关文章

    搞定全球互联!电信CN2线路连接设备全攻略

    在全球化的今天,跨国网络的需求日益增长。无论是企业、游戏玩家,还是需要频繁进行国际交流的个人用户,对网络的稳定性和速度都有极高的要求。而电信CN2线路,作为中国电信为满足跨境网络需求推出的优化网络,凭借其低延迟、高稳定性和优质的服务,成为了众多用户的首选。如何申请并连接设备使用电信CN2线路呢?本文...

    VPSDime评测:高性价比的VPS服务选择

    VPSDime概述 在如今互联网发展的浪潮中,各种主机服务商层出不穷,VPSDime作为一家成立于2013年的海内外主机服务商,引起了我的关注。它隶属于Nodisto IT,专注于VPS业务,提供多种类型的虚拟专用服务器。这对我这样的用户来说,选择合适的主机服务显得尤为重要,尤其是对于需要高性能和高...

    域名购买推荐:如何选择最适合你的域名注册商

    域名购买推荐概述 在互联网时代,域名显得尤为重要。对于个人用户、企业甚至是初创团队来说,域名不仅是网站的门面,更是品牌形象和业务宣传的基石。记得我第一次建立网站时,选择一个合适的域名让我意识到它的价值。一个容易记住、与品牌相关的域名可以有效吸引流量,提升访问者的信任感。 在选购域名时,有几点基本原则...

    国外VPS:高性价比虚拟专用服务器选择指南

    什么是国外VPS? 当我提到国外VPS时,它指的就是虚拟专用服务器(Virtual Private Server),这是一种把物理服务器分割成多个独立的小型服务器的技术。每一个VPS都拥有自己的公网IP地址和操作系统,资源如磁盘空间、内存和CPU都可以独立配置。这种固有的隔离性,可以让我在同一个物理...

    便宜日本VPS的选择与比较:性价比高的供应商推荐

    在当今数字化时代,VPS(虚拟专用服务器)正成为许多企业和个人的首选解决方案,尤其是在日本市场。对于那些需要可靠网络服务的用户来说,这无疑是一个非常实用的选择。日本的VPS服务以其高性能和稳定性著称,深受开发者、小型企业、网站管理员等用户的喜爱。 日本VPS的定义并不复杂,简单来说,它是一种虚拟化技...

    Windows SSH Keygen 无法连接问题解决指南

    在现代网络环境中,SSH(Secure Shell)协议扮演着至关重要的角色,确保了远程登录的安全性与可靠性。在Windows操作系统中,了解SSH的基本知识是非常必要的。SSH不仅提供了加密的网络服务,还为我们在远程管理服务器时提供了安全的通道。 当我们谈到SSH的时候,首先想到的就是它的密钥认证...