工欲善其事,必先利其器。9年开发,我装过上百个 IDEA插件,最终留下来的只有这7个——每一个都让我效率提升至少30%。
大家好,我是卷毛。
这篇是纯干货,建议收藏。我用9年开发经验帮你筛选了7个IDEA插件,每个都附安装方法和使用技巧,看完直接装。
插件一:GitHub Copilot —— AI编程搭档
为什么推荐?
2026年不用AI编程助手的开发者,就像2015年还在用记事本写代码。Copilot已经深度集成到IDEA里,不仅能补全代码,还能帮你写测试、重构、解释代码。
安装
Settings → Plugins → Marketplace → 搜索 "GitHub Copilot" → Install使用技巧
// 1. 注释生成代码 // 写注释,按Tab补全 // 按用户ID查询订单,返回最近3个月的订单列表,按时间倒序 // ↓ Copilot自动生成: public List<Order> findRecentOrders(Long userId) { return orderMapper.findByUserIdAndCreatedAtAfter( userId, LocalDateTime.now().minusMonths(3), PageRequest.of(0, 100, Sort.by(Sort.Direction.DESC, "createdAt")) ); } // 2. 测试生成 // 在方法上右键 → Copilot → Generate Tests // 自动生成JUnit5测试用例,包括正常路径和异常路径 // 3. 代码解释 // 选中不熟悉的代码 → 右键 → Copilot → Explain This // 适合接手老项目时快速理解代码逻辑 // 4. 代码重构建议 // 选中代码 → 右键 → Copilot → Refactor This // 给出重构建议和优化后的代码效率提升点
场景 | 无Copilot | 有Copilot | 提升 写CRUD | 15分钟 | 3分钟 | 5x 写单元测试 | 20分钟 | 5分钟 | 4x 理解陌生代码 | 30分钟 | 10分钟 | 3x 写正则表达式 | 10分钟 | 1分钟 | 10x插件二:SonarLint —— 代码质量实时检查
为什么推荐?
Code Review时最烦的就是低级问题:空指针风险、资源未关闭、硬编码密码。SonarLint在写代码时实时检查,把问题消灭在提交前。
安装
Settings → Plugins → Marketplace → 搜索 "SonarLint" → Install实战效果
// SonarLint会在代码中实时标黄/标红 // ❌ SonarLint会警告:资源未关闭 public void readFile(String path) throws IOException { InputStream is = new FileInputStream(path); // ⚠️ 资源未关闭 // ... } // ✅ SonarLint建议:try-with-resources public void readFile(String path) throws IOException { try (InputStream is = new FileInputStream(path)) { // ... } } // ❌ SonarLint会警告:潜在空指针 public String getName(User user) { return user.getName().toLowerCase(); // ⚠️ user可能为null } // ✅ SonarLint建议:null检查 public String getName(User user) { return user != null ? user.getName().toLowerCase() : ""; }自定义规则
// 可以配置团队规范,比如: // - 禁止使用System.out.println // - 必须使用SLF4J日志 // - public方法必须有Javadoc // - 魔法数字必须定义为常量 // 配置:Settings → Tools → SonarLint → Rules插件三:Lombok —— 告别样板代码
为什么推荐?
9年开发,我写过几千个DTO/VO/Entity。没有Lombok之前,每个类几十行getter/setter/toString/equals,改一个字段要改5个地方。
安装
Settings → Plugins → Marketplace → 搜索 "Lombok" → Install使用前后对比
// ❌ 没有Lombok —— 一个DTO 60行 public class UserDTO { private Long id; private String name; private String email; private Integer age; private String phone; private String address; private LocalDateTime createdAt; public Long getId() { return id; } public void setId(Long id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getEmail() { return email; } public void setEmail(String email) { this.email = email; } public Integer getAge() { return age; } public void setAge(Integer age) { this.age = age; } public String getPhone() { return phone; } public void setPhone(String phone) { this.phone = phone; } public String getAddress() { return address; } public void setAddress(String address) { this.address = address; } public LocalDateTime getCreatedAt() { return createdAt; } public void setCreatedAt(LocalDateTime createdAt) { this.createdAt = createdAt; } @Override public String toString() { return "UserDTO{id=" + id + ", name='" + name + "'...}"; } @Override public boolean equals(Object o) { /* 20行 */ } @Override public int hashCode() { /* 5行 */ } } // ✅ 有Lombok —— 10行 @Data @Builder @NoArgsConstructor @AllArgsConstructor @ToString @EqualsAndHashCode public class UserDTO { private Long id; private String name; private String email; private Integer age; private String phone; private String address; private LocalDateTime createdAt; } // Builder模式直接用 UserDTO user = UserDTO.builder() .id(1L) .name("卷毛") .email("juanmao@tech.com") .build();进阶用法
// 链式setter @Accessors(chain = true) public class User { private String name; private Integer age; } // 使用:new User().setName("卷毛").setAge(18); // 日志注入 @Slf4j public class OrderService { public void createOrder() { log.info("创建订单"); // 直接用log,不用手动声明logger } } // 延迟加载(JPA实体) @Entity public class Order { @ManyToOne(fetch = FetchType.LAZY) @Getter(lazy = true) private User user; }插件四:MyBatisX —— MyBatis开发神器
为什么推荐?
MyBatis是Java后端的ORM标配,但XML映射文件和接口方法之间跳来跳去太麻烦。MyBatisX(MyBatis-Plus官方插件)解决了这个痛点。
安装
Settings → Plugins → Marketplace → 搜索 "MyBatisX" → Install核心功能
// 1. 接口方法名自动生成SQL public interface UserMapper extends BaseMapper<User> { // 写方法名,MyBatisX自动生成SQL List<User> findByNameAndAgeGreaterThan(String name, Integer age); // ↑ 自动生成: WHERE name = #{name} AND age > #{age} User findByEmail(String email); // ↑ 自动生成: WHERE email = #{email} int deleteByIdIn(List<Long> ids); // ↑ 自动生成: WHERE id IN (...) } // 2. 接口和XML之间快速跳转 // Mapper接口方法旁有小鸟图标 → 点击跳转到XML // XML中id旁有图标 → 点击跳转到接口方法 // 3. 代码生成器 // 右键数据库表 → MyBatisX-Generator // 自动生成:Entity + Mapper + XML + Service + Controller // 支持自定义模板 // 4. SQL提示 // XML中写SQL有自动补全 // 表名、字段名、关键字都有提示效率提升
场景 | 手动 | MyBatisX | 提升 写CRUD Mapper | 10分钟 | 1分钟 | 10x 写复杂查询XML | 15分钟 | 5分钟 | 3x 接口和XML跳转 | 搜索30秒 | 点击1秒 | 30x 生成全套代码 | 30分钟 | 30秒 | 60x插件五:Rainbow Brackets —— 嵌套括号不迷路
为什么推荐?
看这段代码:
// 没有Rainbow Brackets —— 一片灰色 return stream.map(x -> { return collect.stream() .filter(y -> y.getId().equals(x.getId())) .map(y -> { return transform(y, x -> { return x.getValue() != null ? x.getValue() : ""; }); }) .collect(Collectors.toList()); }).collect(Collectors.toList()); // 有Rainbow Brackets —— 每层括号不同颜色,一目了然 // 最外层() = 橙色 // 第二层() = 绿色 // 第三层() = 蓝色 // 第四层() = 紫色安装
Settings → Plugins → Marketplace → 搜索 "Rainbow Brackets" → Install实用功能
# Ctrl + 鼠标点击括号 → 高亮匹配的括号对 # 整个括号块变色,方便看清嵌套层级 # 配置(Settings → Other → Rainbow Brackets): - 启用圆括号着色 ✓ - 启用方括号着色 ✓ - 启用花括号着色 ✓ - 颜色循环数:5(看你的嵌套深度)插件六:String Manipulation —— 字符串处理利器
为什么推荐?
日常开发中字符串处理无处不在:JSON格式化、驼峰转下划线、SQL格式化、Base64编码……装了String Manipulation,这些操作一键搞定。
安装
Settings → Plugins → Marketplace → 搜索 "String Manipulation" → Install常用功能
// 选中字符串 → 右键 → String Manipulation // 1. 命名风格转换 // 驼峰 → 下划线 "userName" → "user_name" "getUserById" → "get_user_by_id" // 下划线 → 驼峰 "user_name" → "userName" "USER_NAME" → "userName" // 2. JSON格式化 // 压缩JSON → 格式化JSON {"name":"卷毛","age":18,"skills":["Java","Spring"]} → { "name": "卷毛", "age": 18, "skills": ["Java", "Spring"] } // 3. SQL格式化 // 选中SQL → 格式化 SELECT * FROM users WHERE age > 18 ORDER BY name → SELECT * FROM users WHERE age > 18 ORDER BY name // 4. 编码/解码 // Base64编码/解码 // URL编码/解码 // Unicode转义/反转义 // 5. 排序/去重/过滤 // 选中多行文本 → 按字母排序/去重快捷键
Alt + M → 弹出String Manipulation菜单 Alt + Shift + M → 上次使用的操作插件七:Key Promoter X —— 快捷键学习神器
为什么推荐?
很多开发者用IDEA好几年,还是全靠鼠标点。不是不想用快捷键,是记不住。Key Promoter X会在你用鼠标时弹出提示,告诉你这个操作对应的快捷键。
安装
Settings → Plugins → Marketplace → 搜索 "Key Promoter X" → Install工作方式
# 你用鼠标点击了 "Run" 按钮 # Key Promoter X 弹出通知: "你刚才用鼠标点击了Run,试试快捷键 Shift+F10" "这是你第5次用鼠标点击这个按钮了" # 你用鼠标点击了 "Format Code" # 弹出通知: "试试快捷键 Ctrl+Alt+L" # 坚持一周,你会发现常用的快捷键都记住了 # 效率提升立竿见影必背快捷键
# 导航 Ctrl + B 跳转到定义 Ctrl + Alt + B 跳转到实现 Ctrl + Shift + F 全局搜索 Ctrl + E 最近文件 # 编辑 Ctrl + Alt + L 格式化代码 Ctrl + Alt + O 优化import Ctrl + D 复制当前行 Ctrl + Y 删除当前行 Shift + F6 重命名 # 重构 Ctrl + Alt + V 提取变量 Ctrl + Alt + M 提取方法 Ctrl + Alt + C 提取常量 # 运行 Shift + F10 运行 Shift + F9 调试 F8 单步执行 F9 继续执行插件安装清单汇总
必装(效率翻倍): 1. GitHub Copilot —— AI编程搭档 2. Lombok —— 告别样板代码 3. MyBatisX —— MyBatis开发神器 强烈推荐(减少低级错误): 4. SonarLint —— 代码质量实时检查 5. String Manipulation —— 字符串处理利器 锦上添花(提升体验): 6. Rainbow Brackets —— 嵌套括号不迷路 7. Key Promoter X —— 快捷键学习神器 可选(按需安装): - .ignore —— Git忽略文件管理 - Translation —— 翻译插件(看英文文档) - Maven Helper —— 依赖冲突分析 - GsonFormatPlus —— JSON转Java类 - RestfulTool —— 接口搜索工具写在最后
工具的意义不是替代思考,而是把重复劳动交给工具,把创造性思考留给自己。
这7个插件我从上百个插件中筛选出来,每一个都经过9年实战验证。装上它们,你的开发效率至少提升50%。
但记住:工具只是工具,真正的核心竞争力是你的技术深度和系统设计能力。