java基础 | 动态代理

动态代理

简而言之就是:首先创建一套动态代理的规则,创建好自己的接口,和实现类,在调用时直接调用(缺少什么参数,补充哪个参数!)

实现步骤:

  1. 设计动态代理的规则 (实现**InvocationHandler**接口,重写invoke方法)

    1. 定义一个有参构造方法,用于接收要执行 的方法(对象)
    2. 执行真实的业务场景使用method.invoked("哪个对象方法",arges)
    3. method.invoked()的前后补充需要的扩展项目
  2. 定义真实的接口(userService)

  1. 定义接口的实现类,实现之后直接重写方法。
  1. 测试类中,创建动态代理(类加载器,接口数组,刚刚创建的动态代理执行逻辑)

静态代理

简而言之就是:创建一个接口,创建一个实际的接口实现类,在里面实现具体的方法,创建一个代理的实现类,在里面(创建实际的实现类对象之后)调用实际的业务,然后再上下加上自己需要的拓展公共逻辑。

  1. 创建一个接口,定义实现的方法
  1. 写一个实现类,进行实现这个接口
  1. 代理对象继续实现接口
相关推荐
大菠萝学姐2 分钟前
基于springboot的旅游攻略网站设计与实现
前端·javascript·vue.js·spring boot·后端·spring·旅游
回家路上绕了弯17 分钟前
服务器大量请求超时?从网络到代码的全链路排查指南
分布式·后端
zbhbbedp282793cl29 分钟前
unique_ptr和shared_ptr有何区别?
java·开发语言·jvm
珹洺35 分钟前
Java-Spring入门指南(二十九)Android交互核心:按钮点击事件与Activity跳转实战
android·java·spring
SimonKing38 分钟前
SpringBoot邮件发送怎么玩?比官方自带的Mail更好用的三方工具
java·后端·程序员
武子康41 分钟前
大数据-150 Apache Druid 单机部署实战:架构速览、启动清单与故障速修
大数据·后端·apache
IT_陈寒43 分钟前
Redis 高并发实战:我从 5000QPS 优化到 5W+ 的7个核心策略
前端·人工智能·后端
songroom1 小时前
Rust: 量化策略回测与简易线程池构建、子线程执行观测
开发语言·后端·rust
大G的笔记本1 小时前
Java JVM 篇常见面试题
java·开发语言·jvm
绝无仅有1 小时前
某东电商平台的MySQL面试知识点分析
后端·面试·架构