码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • Java代理


    一、代理解决的问题

    作用:
    1、利用代理可以在运行时创建一个实现了一组给定接口的新类。
    描述:
    这种功能只有在编译时无法确定需要实现那个接口时才有必要使用。
    表现:
    代理类能够实现指定的接口。
    指定接口所需要的全部方法。
    Object类的全部方法

    二、创建代理对象

    Proxy 类的 newProxyInstance
    (一)条件
    1、类加载器,(Null表示用默认的加载器。)
    2、一个Class对象数组。每个元素都是需要实现的接口。
    3、一个调用处理器。

    三、使用场景

    路由对远程服务器方法调用。
    在程序运行期间,将用户接口事件与动作关联起来。
    为调试,跟踪方法调用。

    四、案例

    (一)、JDK动态代理

    1、编写接口
    2、被代理类(真类)
    a、实现接口方法。
    3、代理类
    a、实现jdk自身的InvocationHandler 接口的invoke 方法。
    b、需要初始化。把真类通过构造函数传递进来。供invoke方法调用。即是invoke方法需要的参数。
    4、客户端(调用实现)
    a、创建真类对象
    b、创建代理类对象,并传递真类实例。

    (二)、cglib代理

    1、导入jar包
    a、asm.jar 和 cglib.jar 。(或者坐标)
    2、被代理的类(真类)
    a、实现方法,或者接口。
    3、代理类
    a、实现MethodInterceptor接口的intercept方法。cglib包下的。
    b、实例化
    通过Enhancer来获取和创建代理对象。
    4、客户端

  • 相关阅读:
    OW-DETR | 基于 Transformer 的开放世界目标检测器
    【洛谷算法题】P5713-洛谷团队系统【入门2分支结构】
    日常Git使用自我记录
    Django笔记二十九之中间件介绍及使用示例
    Go语言学习笔记——错误处理
    Qt扫盲-QJsonObject理论总结
    支持JDK19虚拟线程的web框架,之五(终篇):兴风作浪的ThreadLocal
    sign鉴权前置到网关,看看shenyu怎么处理
    代码随想录-Day25
    EasyNLP 中文文图生成模型带你秒变艺术家
  • 原文地址:https://blog.csdn.net/qq_45105305/article/details/125554061
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号