
2025/5/6小于 1 分钟
大模型已抢占各类互联网大会、社区博客的头条,测试领域也已经有非常多的讨论。
我认为现处于探索>>实际落地的阶段,主要因为以下几个原因:
在不侵入原有代码的前提下实现代码增强,比如说在目标对象的某个方法执行前后可以增加一些自定义的操作。
静态代理中,我们对目标对象的每个方法的增强都是手动完成的,这种代理方式需要代理对象和目标对象实现一样的接口。
从 JVM 层面来说, 静态代理在编译时就将接口、实现类、代理类这些都变成了一个个实际的 class 文件。
优点:可以在不修改目标对象的前提下扩展目标对象的功能。
缺点:
SPI 全称 Service Provider Interface,是 Java 提供的一套用来被第三方实现或者扩展的 API,它可以用来启用框架扩展和替换组件。
整体机制如上图,Java SPI 实际上是“基于接口的编程+策略模式+配置文件”组合实现的动态加载机制。