我用 Vibe Coding 搓了一个 IDEA 插件,复制URI 再也不用手动拼了

46 阅读3分钟

痛点:你是不是也在手动拼 URI?

做 Java 后端开发的同学,日常一定绑定了这些操作:

  • 联调接口,需要把 Controller 的完整路径发给前端同事
  • 排查线上问题,要从代码里找到接口的完整 URI,然后去日志平台搜索
  • 写接口文档,一个个复制类上的 @RequestMapping 和方法上的 @GetMapping,手动拼接
  • Feign 调用报错,想快速拿到 FeignClient 声明的完整路径去排查

每次都要做同一件事:眼睛在类注解和方法注解之间来回扫,脑子里拼路径,手动复制粘贴拼接

路径短还好,碰到这种的:

@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

@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 接口

@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.openfeignorg.springframework.cloud.netflix.feign 两种包路径(老项目也能用),@FeignClient 有没有 path 属性都支持。

3. 多路径选择

@PostMapping({"/save", "/add"})
public Result<?> save(...) { ... }

当方法注解声明了多个路径时,会弹出选择对话框,选哪个复制哪个。

4. 快捷键支持

不想右键?直接 Ctrl + Shift + Alt + R(Mac 上是 Cmd + Shift + Alt + R),一步到位。

Vibe Coding 的体验

这个插件从 0 到发布,全程 Vibe Coding,我做的事情就是:

  1. 描述需求:告诉 AI 我要一个右键复制 Spring URI 的 IDEA 插件
  2. 提供反馈:按钮灰了?告诉它"还是灰的"。路径拼错了?把错误信息贴给它
  3. 验证结果:在真实项目里右键试一下,能用就下一个需求

核心代码、PSI 解析、plugin.xml 配置、Gradle 构建,全部由 AI 生成和迭代。

整个过程最大的感受是:Vibe Coding 不是"AI 写完就能用",而是"你提需求 → AI 实现 → 你验证 → 反馈问题 → AI 修复"的循环。 中间那个"灰色按钮"的 bug,来回调了好几轮才搞定,但每一轮的调试方向都是 AI 在推进,我只负责点按钮和说"还是不行"。

这种开发方式特别适合:

  • 你有明确的需求,但对实现技术不熟悉(比如我对 IDEA 插件开发的 PSI API 完全不了解)
  • 项目体量不大,一个人就能验证闭环
  • 你愿意花时间做"测试员",用真实场景反复验证

安装使用

方式一:IDEA 插件市场安装

Settings → Plugins → Marketplace 搜索 CopyUtil,安装重启即可。

方式二:离线安装

  1. Gitee 仓库 下载最新 Release 的 zip 包
  2. Settings → Plugins → ⚙️ → Install Plugin from Disk,选择 zip 文件
  3. 重启 IDEA

最后

一个小插件,解决一个小痛点。

如果你也受够了手动拼 URI,试试 CopyUtil。