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

JDK的动态代理jdk动态代理

2天前CN2资讯

JDK动态代理

如下创建动态代理对象,与cglib非常的类似

1、写一个代理类生成工厂

import java.lang.reflect.InvocationHandler; import java.lang.reflect.Method; import java.lang.reflect.Proxy; public class JDKProxy implements InvocationHandler { private Object target; public JDKProxy(Object target) { this.target = target; } /** * 获取代理对象 */ public <T> T gerProxy(Class clazz){ return (T)Proxy.newProxyInstance(clazz.getClassLoader(),new Class[]{clazz},this); } @Override public Object invoke(Object proxy, Method method, Object[] args) throws Throwable { System.out.println("=====前置通知====="); final Object result = method.invoke(target, args); return result; } }

接口和实现类

interface MyInterface { String hello(); } public class MyInterfaceImpl implements MyInterface{ @Override public String hello() { System.out.println("======执行了hello方法======"); return "hello"; } }

测试代码

1、获取代理对象
2、根据这个对象返回代理对象
3、调用该代理对象方法,会发现也触发了

public class DynamicProxyDemo { public static void main(String[] args) { final JDKProxy jdkProxy = new JDKProxy(new MyInterfaceImpl());// 1、创建代理工厂类 final MyInterface myInterface = jdkProxy.gerProxy(MyInterface.class);// 2、得到代理对象 myInterface.hello();// 3、通过代理对象调用方法 } }

运行结果

=====前置通知===== ======执行了hello方法====== Process finished with exit code 0
    你可能想看:

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

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

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

    分享给朋友:

    “JDK的动态代理jdk动态代理” 的相关文章

    全面提升VPS性能测试与优化方法指南

    VPS性能测试概述 在使用VPS的过程中,了解它的性能测试显得尤为重要。VPS性能测试是一种评估虚拟专用服务器性能的手段,可以帮助我们清晰地了解VPS的状态与能力。这项测试不仅关注CPU型号、内存大小等硬件配置,还涵盖了磁盘存储量、操作系统版本以及虚拟化程序等多个方面的检测。通过这些参数,我们能对V...

    ZGOVPS优惠码使用指南:如何享受高性能VPS服务的优惠

    ZGOVPS是一家在VPS服务领域备受瞩目的品牌。作为一个提供高性能虚拟专用服务器的商家,它在业内以性价比高、网络稳定和良好口碑而受到广泛欢迎。我在使用ZGOVPS的过程中,深刻感受到了它对客户需求的敏锐把握和优质服务的承诺。 从公司的背景来看,ZGOVPS专注于为全球用户提供专业的VPS解决方案,...

    宝塔面板安装指南:轻松搭建与管理云服务器

    宝塔面板是一款专为服务器运维设计的工具,以其简单易用的操作界面受到广泛欢迎。我在使用云服务器建站时,发现宝塔面板让繁琐的服务器管理变得轻松自如。它支持一键安装LAMP和LNMP环境,用户可以在数分钟内搭建出一个完整的网站环境,而且它还集成了监控、数据库管理、FTP等多种功能,真是一个多面手。 无论是...

    大硬盘服务器的应用与优化建议

    大硬盘服务器,是一种为了存储大量数据而特别设计的服务器。它在数据存储和管理方面发挥着至关重要的作用,特别是在当今数据爆炸的时代。这样一台服务器不仅需要满足基本的存储需求,还应具备高效的性能。无论是企业的数据库管理、云计算服务,还是大数据分析,都会依赖这样的服务器进行支持。 我对大硬盘服务器的定义和用...

    了解尼日利亚IP地址及其获取方法

    尼日利亚IP地址概述 尼日利亚的IP地址数量颇具规模,达到3,196,160个,这在全球范围内占有0.0938%的比重,位居第61位。这意味着,尽管尼日利亚在全球互联网上不是最大的参与者,但它的IP资源依然相对丰富,给予了很多用户连接世界的机会。听起来兴奋吧?这些IP地址为本地互联网用户和企业提供了...

    RackNerd在纽约的数据中心服务与优势

    RackNerd在纽约的数据中心的服务确实引人关注。从基础服务到多样化的产品,RackNerd为各类客户提供了丰富的选择。我对于他们的虚拟主机和独立服务器十分赞赏。这些服务不仅安全可靠,而且具有灵活的配置选项,满足了各种不同需求的用户。对于初创企业或者需要特别高可用性的业务,选择RackNerd无疑...