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

痛点:你是不是也在手动拼 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,我做的事情就是:

  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。

相关推荐
IT_陈寒3 小时前
一文搞懂Vite的核心概念
前端·人工智能·后端
一个简单的TTS开发者3 小时前
中文TTS工具有哪些-8款主流方案横向对比
人工智能·后端·python·indextts
高频因子挖掘机4 小时前
量化回测应该保存不复权数据吗?从数据口径到收益计算的工程实践
后端·github·api
高频因子挖掘机5 小时前
实时行情为什么不应该逐只股票请求?批量查询与标的池管理实践
后端·github·api
程序猿DD10 小时前
OctaFuse Gateway 2.15.0:MCP 聚合、向量 Embeddings 与官方目录同步
后端·agent
余槐i13 小时前
PostgreSQL 函数索引报错 must be immutable:3种绕法与代价
数据库·后端·sql·postgresql·性能优化
需要82613 小时前
Spring Bean 生命周期:从实例化到销毁的完整钩子
java·后端·spring
凤山老林14 小时前
Spring Boot 接入国密 SM2/SM3/SM4 的一些实践记录
spring boot·后端·python
伯恩bourne15 小时前
Spring Boot Bean 注册的两种方式:@Component 家族 vs @Configuration + @Bean
java·spring boot·后端
张彦峰ZYF15 小时前
停顿短不等于延迟低:G1、ZGC 与低延迟服务的目标分野、代价账本与选型标定
后端·回收暂停、应用停止总时长·到达安全点、分配停滞·屏障吃吞吐、并发线程吃核心·并发窗口吃堆余量·分区式靠挑回收集兑现目标·染色指针式不支持压缩引用