Developer Toolchain · Spring Boot · IntelliJ IDEA

浏览器请求一键 跳转 Controller 源码

Chrome 扩展 + IDEA 插件的组合方案。在浏览器 Network 面板看到请求的同时, 实时捕获并一键定位到 Spring Boot 项目中对应的 Controller 方法——无需手动搜索。

⚡ 获取 Chrome 扩展 🔧 获取 IDEA 插件

三个组件,一条完整链路

浏览器端捕获 → 本地 HTTP 通信 → IDEA 精准定位,整个流程在毫秒级完成

🌐
Chrome 浏览器 localhost:8080
webRequest 拦截
🔌
Chrome 扩展 浮窗展示 · 过滤
POST :38523
💡
IDEA 插件 路径匹配 · 跳转
详细步骤

它是如何运转的

1

扩展监听页面请求

Chrome 扩展通过 chrome.webRequest API 实时捕获HTTP 请求,自动过滤 CSS、JS、图片等静态资源,仅保留业务接口。

2

浮窗面板实时展示

页面右下角出现可拖拽的浮窗,列出所有捕获到的业务请求。每条请求显示 HTTP Method 和路径,点击「📂 打开 IDEA」触发跳转。

3

IDEA 插件接收并路由匹配

IDEA 插件内置本地 HTTP Server,默认监听 127.0.0.1:38523。收到请求后扫描当前项目所有 Spring MVC 映射注解,支持 Ant 路径通配。

4

自动剥离代理前缀匹配

即使前端请求经过 /dev-api/admin-api/gateway/xxx 等代理前缀,插件也会逐段剥离后继续匹配,确保前后端路径不一致时依然有效。

POST http://127.0.0.1:38523/__open_in_idea

{
  "requestUrl": "http://localhost/dev-api/system/config/configKey/sys.name",
  "method": "GET"
}
5

IDEA 精准跳转到代码行

匹配成功后,IDEA 编辑器自动打开对应 Java 文件并将光标定位到具体 Controller 方法所在行,无需任何手动搜索。

插件详情

两个组件,缺一不可

Chrome 扩展负责捕获与展示,IDEA 插件负责解析与定位,二者通过本地 HTTP 协议协同工作。

🌐 Chrome Extension

spring-boot-open-in-ide-extension

运行在浏览器端的 Chrome 扩展。在页面上注入可拖拽浮窗,实时捕获并过滤 Spring Boot 应用的网络请求,提供一键跳转入口。

  • 页面右下角可拖拽浮窗,不遮挡操作区
  • 自动过滤 CSS/JS/图片/字体等静态资源
  • 支持最小化、清空列表、拖拽移动
  • 通过 chrome.webRequest 监听,零页面侵入
  • 可配置 IDEA 插件监听端口(默认 38523)
💡 IDEA Plugin

open-in-idea-plugin

运行在 IntelliJ IDEA 内的插件。内置本地 HTTP Server,接收浏览器扩展的请求,扫描 Spring MVC 注解并跳转到对应源码。

  • 支持全部 Spring MVC 映射注解(Get/Post/Put/Delete/Patch/Request)
  • 类级别 + 方法级别路径自动拼接
  • Ant 风格路径匹配:{id}***
  • 自动剥离代理前缀兼容各类网关场景
  • Settings 面板支持启用/禁用、自定义端口
IDEA 2023.3+
Java 17+
sinceBuild 233
匹配示例

前缀自动剥离,精准匹配

即使前端通过代理前缀访问,插件也能正确定位。以下是一个完整的匹配示例。

SPRING CONTROLLER
SysConfigController.java
@RestController
@RequestMapping("/system/config")
public class SysConfigController {

  @GetMapping("/configKey/{configKey}")
  public AjaxResult getConfigKey(
    @PathVariable String configKey) {
    return AjaxResult.success();
  }
}
浏览器实际请求 URL
// 带代理前缀的完整请求
GET /dev-api/system/config/configKey/sys.name

// 插件依次尝试匹配:
/dev-api/system/config/configKey/sys.name
/system/config/configKey/sys.name

// 匹配的 Controller 路径:
/system/config + /configKey/{configKey}

// 跳转到:
→ getConfigKey() 方法第 N 行
安装指南

快速上手,两步完成

按顺序安装 IDEA 插件和 Chrome 扩展,即可开始使用。

💡

第一步:安装 IDEA 插件

IntelliJ IDEA 2023.3+
  1. 克隆或下载 open-in-idea-plugin 仓库
  2. 打开 IDEA → Settings → Plugins
  3. 点击齿轮图标 → Install Plugin from Disk...
  4. 选择上述 zip 文件并重启 IDEA
  5. 进入 Settings → Tools → Open In IDEA 确认已启用
🌐

第二步:安装 Chrome 扩展

Google Chrome · 开发者模式
  1. 克隆或下载 spring-boot-open-in-ide-extension 仓库
  2. 打开 Chrome,地址栏输入 chrome://extensions/
  3. 开启右上角「开发者模式」开关
  4. 点击「加载已解压的扩展程序」
  5. 选择 spring-boot-open-in-ide-extension 项目根目录
  6. 扩展图标出现在工具栏,安装完成
⚠ 前置条件

IDEA 插件与 Chrome 扩展使用同一端口(默认 38523)通信,若修改端口,两侧需保持一致并重启 IDEA。

常见问题

FAQ

请确认 Spring Boot 应用已启动,且 IDEA 插件正在运行(IDEA 已打开对应后端项目)。插件监听端口(默认 38523)必须被成功占用。可在 Settings → Tools → Open In IDEA 中确认插件状态。

检查:① IDEA 当前打开的是否是正确的后端项目;② IDEA 索引是否已经完成(状态栏无进度条);③ 请求的 HTTP Method 是否与 Controller 注解一致(如接口是 POST,不能发 GET);④ Controller 是否使用了自定义组合注解(暂不支持)。

同一端口只能被一个项目占用,通常最先打开的项目会响应。如需切换,关闭当前占用端口的项目,或为不同项目配置不同端口(记得同步修改扩展侧端口设置)。

可以。插件不依赖固定前缀,而是从左到右逐段剥离路径后依次尝试匹配,因此 /admin-api/gateway/api/foo/bar/baz 等任意前缀都能兼容。

支持。{id} 匹配任意单段路径值;* 匹配单个路径段;** 匹配零个或多个路径段。遵循标准 Ant 风格路径匹配规则。