痛点:你是不是也在手动拼 URI?
做 Java 后端开发的同学,日常一定绑定了这些操作:
- 联调接口,需要把 Controller 的完整路径发给前端同事
- 排查线上问题,要从代码里找到接口的完整 URI,然后去日志平台搜索
- 写接口文档,一个个复制类上的
@RequestMapping和方法上的@GetMapping,手动拼接 - Feign 调用报错,想快速拿到 FeignClient 声明的完整路径去排查
每次都要做同一件事:眼睛在类注解和方法注解之间来回扫,脑子里拼路径,手动复制粘贴拼接。
路径短还好,碰到这种的:
java
@RestController
@RequestMapping("/api/v2/business/aggregate")
public class AggregateBusinessController {
@PostMapping("/queryAggBusinessByUserId")
public Result<?> queryAggBusinessByUserId(...) { ... }
}
你得复制 /api/v2/business/aggregate,再复制 /queryAggBusinessByUserId,再拼成 /api/v2/business/aggregate/queryAggBusinessByUserId。
一次两次没什么,一天几十次就开始烦了。更别提拼错了还要反复排查。
这种重复且易错的操作,就应该交给工具。
解决方案:CopyUtil ------ 一键复制 Spring URI
于是我用 Vibe Coding 的方式,搓了一个 IntelliJ IDEA 插件:CopyUtil。
功能很简单也很纯粹:光标放在方法上,右键 → Copy URI,完整路径直接进剪贴板。
支持的场景
1. 标准 Spring MVC Controller
java
@RestController
@RequestMapping("/api/users")
public class UserController {
@GetMapping("/list")
public List<User> list() { ... }
// Copy URI → /api/users/list
}
支持类上 @RestController、@Controller、@RequestMapping 注解,方法上 @GetMapping、@PostMapping、@PutMapping、@DeleteMapping、@PatchMapping、@RequestMapping 全家桶。
2. Feign Client 接口
java
@FeignClient(name = "user-service", path = "/api/users")
public interface UserClient {
@GetMapping("queryById")
User queryById(@RequestParam Long id);
// Copy URI → /api/users/queryById
}
同时兼容 org.springframework.cloud.openfeign 和 org.springframework.cloud.netflix.feign 两种包路径(老项目也能用),@FeignClient 有没有 path 属性都支持。
3. 多路径选择
java
@PostMapping({"/save", "/add"})
public Result<?> save(...) { ... }
当方法注解声明了多个路径时,会弹出选择对话框,选哪个复制哪个。
4. 快捷键支持
不想右键?直接 Ctrl + Shift + Alt + R(Mac 上是 Cmd + Shift + Alt + R),一步到位。
Vibe Coding 的体验
这个插件从 0 到发布,全程 Vibe Coding,我做的事情就是:
- 描述需求:告诉 AI 我要一个右键复制 Spring URI 的 IDEA 插件
- 提供反馈:按钮灰了?告诉它"还是灰的"。路径拼错了?把错误信息贴给它
- 验证结果:在真实项目里右键试一下,能用就下一个需求
核心代码、PSI 解析、plugin.xml 配置、Gradle 构建,全部由 AI 生成和迭代。
整个过程最大的感受是:Vibe Coding 不是"AI 写完就能用",而是"你提需求 → AI 实现 → 你验证 → 反馈问题 → AI 修复"的循环。 中间那个"灰色按钮"的 bug,来回调了好几轮才搞定,但每一轮的调试方向都是 AI 在推进,我只负责点按钮和说"还是不行"。
这种开发方式特别适合:
- 你有明确的需求,但对实现技术不熟悉(比如我对 IDEA 插件开发的 PSI API 完全不了解)
- 项目体量不大,一个人就能验证闭环
- 你愿意花时间做"测试员",用真实场景反复验证
安装使用
方式一:IDEA 插件市场安装
Settings → Plugins → Marketplace 搜索 CopyUtil,安装重启即可。
方式二:离线安装
- 从 Gitee 仓库 下载最新 Release 的 zip 包
Settings → Plugins → ⚙️ → Install Plugin from Disk,选择 zip 文件- 重启 IDEA
最后
一个小插件,解决一个小痛点。
如果你也受够了手动拼 URI,试试 CopyUtil。