java基础 | 动态代理

动态代理

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

实现步骤:

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

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

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

静态代理

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

  1. 创建一个接口,定义实现的方法
  1. 写一个实现类,进行实现这个接口
  1. 代理对象继续实现接口
相关推荐
ac-er888814 分钟前
在Flask中处理后台任务
后端·python·flask
丶白泽18 分钟前
重修设计模式-结构型-桥接模式
java·设计模式·桥接模式
ac-er888820 分钟前
Flask中的钩子函数
后端·python·flask
o独酌o24 分钟前
递归的‘浅’理解
java·开发语言
无问81736 分钟前
数据结构-排序(冒泡,选择,插入,希尔,快排,归并,堆排)
java·数据结构·排序算法
customer081 小时前
【开源免费】基于SpringBoot+Vue.JS在线文档管理系统(JAVA毕业设计)
java·vue.js·spring boot·后端·开源
Flying_Fish_roe1 小时前
Spring Boot-版本兼容性问题
java·spring boot·后端
程序猿进阶1 小时前
如何在 Visual Studio Code 中反编译具有正确行号的 Java 类?
java·ide·vscode·算法·面试·职场和发展·架构
slandarer2 小时前
MATLAB | R2024b更新了哪些好玩的东西?
java·数据结构·matlab
Dola_Pan2 小时前
Linux文件IO(一)-open使用详解
java·linux·dubbo