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

动态代理的实现静态代理和动态代理

1天前CN2资讯

一、代理模式的原理 使用一个代理对象将目标真实对象包装起来,然后用该代理对象取代原始对象,任何对原始对象的调用都要通过代理。代理对象决定是否以及何时将方法调用转到原始对象上。 二、代理模式的实现 使用Java动态代理实现方法日志功能 /*

  • 一个计算加减乘除的接口 */ public interface ICalc {

    public int add(int a, int b); public int div(int a, int b); public int mul(int a, int b); public int sub(int a, int b); } /*

  • 计算加减乘除的接口实现 */ public class IIalImpl implements ICalc {

    public int add(int a, int b) { int r = a + b; return r; } public int div(int a, int b) { int r = a - b; return r; } public int mul(int a, int b) { int r = a * b; return r; } public int sub(int a, int b) { int r = a / b; return r; } } /**

  • 使用java反向代理模拟日志功能

  • @author user

/ /

  • 处理器类 */ class Handler implements InvocationHandler {

    Object target; public Handler(Object target) { this.target = target; } //此方法是代理对象发起对任何方法的调用都会进入这个方法 //三个参数:1.obj指代理对象本身 2.method指本次所调用的方法对象 3.args指本次所调用的方法的所有参数 //返回值与目标方法的返回值一致 public Object invoke(Object obj, Method method, Object[] args) throws Throwable { System.out.println(method.getName() + "开始,参数是:" + Arrays.toString(args)); Object r = method.invoke(target, args); System.out.println(method.getName() + "结束,结果是:" + r); return r; } } public class TestApp {

    @Test public void testApp() { //反向代理的步骤 //1.先创建目标对象,向上转型了 ICalc target = new IIalImpl(); //2.创建目标对象 //他需要三个参数 //类加载器:用于将类加载到内存中,实例化之前进行的步骤 ClassLoader cl = TestApp.class.getClassLoader(); //接口数组:获得真实对象保存的接口 Class[] interfaces = target.getClass().getInterfaces(); //处理器对象 Handler h = new Handler(target); ICalc proxyObject = (ICalc) Proxy.newProxyInstance(cl, interfaces, h);

    proxyObject.add(1, 3); proxyObject.div(2, 5); proxyObject.mul(4, 8); proxyObject.sub(4, 2);

    } }

    你可能想看:

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

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

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

    分享给朋友:

    “动态代理的实现静态代理和动态代理” 的相关文章

    JustHost优惠码大揭秘:节省开支的绝佳办法

    JustHost概述 我对JustHost的了解始于它的多样化主机产品和用户友好的服务。JustHost成立于2006年,作为一家俄罗斯主机商,它提供虚拟主机、VPS服务器以及独立服务器,是一个值得关注的选择。JustHost不仅拥有丰富的技术背景,还致力于为用户提供高性价比的服务,这让我对它充满了...

    如何选择合适的IP站及其运作原理

    IP站的运作原理 在探讨IP站的运作原理之前,首先需要明确什么是IP站。简单来说,IP站是一种特殊的网络服务,它利用互联网协议(IP)提供不同的网络功能和服务。每个IP站都与一个或多个IP地址相连,能够用来访问信息、数据或应用程序。在我的网络体验中,无论是个人使用还是企业应用,IP站总是扮演着至关重...

    台湾VPS:选择高效、安全、性价比优越的虚拟专用服务器

    在当今互联网时代,VPS(虚拟专用服务器)成为了很多用户在选择网络服务时的热门选择。在我看来,VPS的定义可以说是一个虚拟化的服务器,用户能够以相对较低的成本获得类似于物理服务器的管理权和资源使用权。VPS通常被用于搭建网站、管理应用程序、进行数据存储等多种场景,尤其是对资源有较高要求的用户而言,它...

    解决VPS无法访问Docker的常见问题与有效方法

    VPS无法访问Docker的原因分析 使用VPS运行Docker的过程是许多开发者和运维人员日常工作的重要组成部分。遇到VPS无法访问Docker的情况,首先需要明确问题的原因。这个问题可能来源于多个方面,包括网络配置、Firewall与安全组的设定,还可能涉及到Docker本身的配置和地域限制。...

    高防服务器:企业网络安全的坚固堡垒

    在这个数字化日益加深的时代,我们的生活、工作和娱乐都越来越依赖于互联网。随之而来的,则是网络安全问题的加剧。其中,高防服务器作为提升网络安全性的重要工具,逐渐引起大家的关注。 高防服务器,顾名思义,就是专门设计用来抵御各种网络攻击,特别是DDoS攻击的服务器。简而言之,它就像是一个坚固的堡垒,能够有...

    全面了解落地VPS:特点、价格与选择指南

    什么是落地VPS 落地VPS,简单来说,就是在特定的物理位置或地理区域内提供的虚拟专用服务器(VPS)服务。这种服务通常用于提高数据传输速度和降低延迟,尤其适合随着市场需求而需要本地化服务的企业和开发者。想象一下,很多互联网用户需要快速访问他们所在地区的数据和网站,而落地VPS正好满足了这一需求。...