java-code-review
审查 Java 代码安全、风格、Spring Boot 最佳实践。
评分明细
适用场景
java-code-review 快速入门
Spring Boot 老项目想升级 Java 21?先让 AI 帮你扫一遍”安全 + 风格 + 最佳实践”。
这是什么?解决什么问题?
Java 项目做到第 3 年,几乎都会出现这些典型问题:Controller 层堆了几千行业务逻辑、Service 层用 Map<String, Object> 满天飞、SQL 字符串拼接(注入风险)、@Transactional 配错导致事务不生效、Stream API 滥用或根本不用、Optional 用法不规范、单元测试覆盖率低……这些问题分散在几百个文件里,人工 review 极耗时间。
java-code-review 是社区维护的 Java 专项代码审查 Skill,聚焦三个维度:安全(SQL 注入、硬编码密钥、权限检查、敏感日志)、风格(命名、注释、import 顺序、魔法值)、Spring Boot 最佳实践(Controller 薄、Service 厚、Repository 简洁、配置外置、Bean 作用域)。
加载这个 Skill 后,AI 在帮你 review Java 代码时会主动检查:@RestController 是否只做参数解析和路由、是否把业务逻辑下沉到 Service、SQL 是否用 PreparedStatement 或 JpaRepository、密码字段是否加密存储、异常是否用 @ControllerAdvice 统一处理。Skill 内部封装了 OWASP Top 10 的 Java 专项检查项,适合安全合规要求高的金融、政企项目。
适合:Spring Boot 中大型项目维护、Java 团队 Code Review 流程、企业内部合规审查。
准备工作
- Java 17+ / 21(本 Skill 默认按现代 Java 标准)
- Spring Boot 3.x:本 Skill 重点支持 3.x
- Maven 或 Gradle:任一构建工具
- Claude Code / Cursor:本 Skill 适配主流 AI 编程环境
3 步快速上手
第 1 步:安装 Skill
npx skills add JackyST0/awesome-agent-skills --skill java-code-review
仓库:https://github.com/JackyST0/awesome-agent-skills
第 2 步:验证 Skill
向 AI 询问:
用 java-code-review Skill,列出 Spring Boot Controller 的 5 个常见反模式
如果 AI 提到”业务逻辑下沉”、“返回类型统一用 ResponseEntity”、“参数校验用 @Valid”等,说明 Skill 加载成功。
第 3 步:审查真实文件
用 java-code-review Skill 审查 src/main/java/com/example/controller/UserController.java,
输出安全 / 风格 / Spring 最佳实践三类问题清单,带严重级别
AI 会逐方法分析,输出 blocker / major / minor 分类的问题清单。
常见踩坑
- @Transactional 失效:方法内 this 调用同类方法,@Transactional 不会触发(走的是原生 this 引用,不经过代理)。Skill 主动识别并建议”抽到独立 Service”。
- SQL 注入未识别:用
JdbcTemplate.queryForObject(sql, rowMapper, args)比queryForObject(sql + id, ...)安全,AI 应优先推荐前者。 - 硬编码密钥误报:测试代码里
application-test.yml写死密钥,Skill 可能误报为”生产密钥泄露”。要约定 test 资源目录豁免。 - N+1 查询没发现:JPA
@OneToMany懒加载导致循环中 N 次查询,Skill 默认会主动查equals/hashCode、@Transactional(readOnly = true)配置。 - 异常吞掉:
catch (Exception e) { e.printStackTrace(); }啥也不做,Skill 会要求”记录日志 + 重新抛出或包装”。 - 循环依赖:两个
@Service互相注入,启动失败。Skill 会在审查阶段就提示”A 依赖 B,B 依赖 A”。
初级用法
- Controller 薄层:
@GetMapping("/{id}")拿id、调service.findById(id)、返回ResponseEntity.ok(),不在 Controller 里写业务。 - Service 厚层:所有业务规则、判断、事务都集中在 Service,Controller 只负责协议层。
- Repository 简洁:
JpaRepository<T, ID>自动获得 CRUD,自定义查询用@Query+ JPQL。
高级玩法
- Spring Security 集成审查:检查
@PreAuthorize是否覆盖敏感接口、密码是否走BCryptPasswordEncoder。 - 响应式编程(WebFlux):把同步阻塞代码改成 Mono/Flux,Skill 会主动识别”误用 block()”。
- Spring Cloud 微服务:审查服务间调用是否走 OpenFeign / RestTemplate、超时与重试是否配、熔断是否用 Resilience4j。
小技巧
- 用
spring-boot-starter-validation加@Valid自动校验@NotNull/@Size,免去手写 if。 - 异常统一用
@ControllerAdvice+@ExceptionHandler,不要到处try-catch。 - 配置外置到
application.yml,不要在代码里写new SimpleDateFormat("yyyy-MM-dd")这种硬编码。 - 用 Lombok(
@Data/@Builder)减少样板代码,但要团队统一约定,避免@Data在 JPA 实体里的循环引用。 - 用
MapStruct做 DTO/Entity 互转,比手写setXxx维护性强。 Optional不要作为字段类型,只用于返回值,避免序列化问题和反模式。- 单元测试用
@SpringBootTest+MockMvc做集成测试,@DataJpaTest做 Repository 测试,分层清晰。 - 静态分析加
SpotBugs+Checkstyle+PMD,AI 审查和工具扫描双重保险。
常见问题 FAQ
Q1: java-code-review 适合哪些编程语言?
A: java-code-review 通常支持主流编程语言(Python、JavaScript/TypeScript、Java、Go、C++、Rust 等)。支持程度因语言而异:Python/JavaScript/TypeScript 最佳,小众语言(如 Haskell、Elixir)可能较弱。
Q2: java-code-review 生成的代码可以直接用吗?
A: 简单的 CRUD、工具函数、单元测试可以直接用;复杂的业务逻辑、算法实现需要人工 review。永远不要盲目复制 AI 生成的代码——先理解再使用。
Q3: java-code-review 怎么收费?
A: 通常分免费版(基础功能,有限次数)、付费版(高级模型、无限次数、团队协作)。个人开发者 Pro 版约 $10-20/月,企业版 $30-50/用户/月。具体以 https://github.com/JackyST0/awesome-agent-skills 定价为准。
Q4: java-code-review 会上传我的代码到云端吗?有隐私问题吗?
A: 大部分 AI 编程工具会保存你的代码用于服务提供(模型推理)和模型改进(除非关闭)。敏感代码(企业核心、商业秘密)建议:1) 使用本地部署版本;2) 关闭”使用我的代码改进模型”选项;3) 考虑企业版(有更强隐私保护)。
Q5: 怎么让 java-code-review 生成更高质量的代码?
A: 关键技巧:1) 写清晰的 prompt,说明输入输出和约束;2) 提供代码示例(让 AI 学习你的风格);3) 拆分任务,不要一次生成太多;4) 用 TODO 注释让 AI 补充具体实现;5) review + 单元测试保证质量。
参考链接
- Skill 仓库:https://github.com/JackyST0/awesome-agent-skills
- Spring Boot 官方文档:https://spring.io/projects/spring-boot
- Spring 编程风格指南:https://github.com/spring-projects/spring-framework/wiki/Code-Style
- OWASP Java 防护:https://owasp.org/www-project-top-ten/
- SpotBugs 静态分析:https://spotbugs.github.io/
- MapStruct 文档:https://mapstruct.org/
实战经验:Spring Boot 老项目 Code Review 流程
下面演示 java-code-review Skill 在一个真实 Code Review 流程里的使用方式。
场景:一个 3 年历史的 Spring Boot 后端项目,代码量 8 万行,要做”安全合规 review”。
步骤 1:用 Skill 跑全量扫描
用 java-code-review Skill 审查 src/main/java/com/example/ 下所有文件,
按"安全 / 风格 / Spring 最佳实践"分类输出问题清单
按 blocker / major / minor 严重级别排序
AI 扫描所有文件,可能发现 200+ 问题,这是预期,不要慌。
步骤 2:分类处理
把问题分桶:
- blocker(必须立刻修):SQL 注入、硬编码密钥、敏感日志
- major(本迭代修):N+1 查询、循环依赖、@Transactional 失效
- minor(下一个 sprint):命名风格、注释缺失、import 顺序
把清单写到 docs/code-review/2026-Q2.md,用 issue tracker(Linear / Jira)创建对应工单。
步骤 3:逐文件修复 + 验证
每个 blocker 修复后,跑:
mvn test # 单元测试
mvn verify # 集成测试
mvn sonar:sonar # SonarQube 静态分析
确保修改不引入新问题。Skill 在审查阶段会建议”修复后跑一次完整测试”,养成习惯。
步骤 4:建立”防退化”机制
在 pom.xml 加:
<plugin>
<groupId>com.github.spotbugs</groupId>
<artifactId>spotbugs-maven-plugin</artifactId>
<version>4.8.6</version>
<configuration>
<effort>Max</effort>
<threshold>Low</threshold>
</configuration>
</plugin>
让 SpotBugs 在 mvn verify 阶段自动跑,Skill 审查 + 工具扫描双重保险。
配合使用的工具链
- SonarQube:代码质量平台,持续监控 blocker 数,https://www.sonarsource.com/products/sonarqube/
- SpotBugs:静态分析(原 FindBugs 后继),
mvn spotbugs:check。 - Checkstyle:代码风格检查,接 IDE 即时反馈。
- PMD:代码规则检查,补充 SpotBugs 未覆盖的维度。
- ArchUnit:架构约束(如”Controller 不能直接调用 Repository”),适合中大型项目。
- OWASP Dependency-Check:检查依赖是否有已知漏洞,
mvn org.owasp:dependency-check-maven:check。 - JFR + JMC:生产环境性能分析,定位慢方法、内存泄漏。
给 Java 新手的建议
- 不要把 Java 当 JavaScript 写:不要滥用
Object、不要所有方法都static、不要throws Exception一把梭。 - 多用 composition,少用 inheritance:Java 的继承层次太深会难维护,优先用接口组合。
- 学会用 Stream API:
stream().filter().map().collect()比 for 循环简洁,但别为了用而用,简单循环更直白。 - 读 Spring 源码:
@RestController怎么工作的、@Transactional怎么织入的,理解原理后写代码更有信心。 - JVM 调优是进阶技能:堆大小、GC 选型、JIT 编译,这些等真遇到性能问题再学不迟。
- Java 21 是新基准:Virtual Threads(协程)、Pattern Matching、Record Patterns,新项目应该直接用 Java 21。
本文基于官方文档和公开资料整理,AI辅助生成,MagicNetWorld 尚未完成独立实测。如有错误或过时信息,请通过 contact@magicnetworld.com 反馈。
java-code-review Skill 多维度简评
综合评分:8.4 / 10 ⭐⭐⭐⭐ 类别:工程方法 定位:Java 代码审查:Effective Java 原则、性能、并发、安全。
声明:本文基于公开技术文档和行业实践整理,未经过 MagicNetWorld 实测。java-code-review 目前未发现对应的独立开源 Skill 仓库,以下内容基于 Java 代码审查的最佳实践和相关工具生态编写。
一、核心定位与价值
Java 代码审查是保障 Java 项目质量的关键环节。java-code-review Skill 将 Joshua Bloch 的《Effective Java》、JVM 性能优化原则、并发编程最佳实践以及静态分析工具(SpotBugs、Checkstyle、SonarQube)的检查能力整合为 AI Agent 可执行的工作流。
与通用代码审查不同,Java 专项审查需要关注 JVM 特有的问题:内存泄漏模式、GC 友好性、线程安全、异常处理的最佳实践等。
核心价值:Java 代码审查:Effective Java 原则、性能、并发、安全。
二、核心能力清单
| 能力 | 检查范围 | 适用场景 |
|---|---|---|
| Effective Java 检查 | 对象创建、泛型、序列化等 90 条原则 | Java 项目 code review |
| JVM 性能分析 | GC 压力、对象分配、String 使用 | 性能敏感应用 |
| 并发安全检查 | volatile、synchronized、锁粒度 | 多线程/高并发应用 |
| Spring 最佳实践 | Bean 管理、事务、AOP | Spring 项目 |
| 静态分析集成 | SpotBugs / Checkstyle 规则 | CI 流水线 |
三、典型使用场景
场景 1:单类审查
提示词:
使用 java-code-review 审查 UserService.java,重点检查:空指针、资源泄露、线程安全问题
Skill 逐条分析代码,标注风险等级和修复建议。
场景 2:Spring 项目审查
提示词:
审查 Spring Boot 项目的 Service 层和 Repository 层,关注事务管理和依赖注入正确性
检查 @Transactional 使用是否正确、循环依赖是否存在、懒加载陷阱等。
场景 3:CI 集成
# .github/workflows/java-review.yml
name: Java Code Review
on: [pull_request]
jobs:
review:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Run SpotBugs
run: ./gradlew spotbugsMain
- name: AI Code Review
uses: anthropics/claude-code-action@v1
with:
anthropic_api_key: ${{ secrets.ANTHROPIC_API_KEY }}
prompt: "Review the Java code changes in this PR for Effective Java violations and concurrency issues"
四、审查维度详解
Effective Java 核心检查项(第 3 版)
- 对象创建与销毁:使用静态工厂方法、Builder 模式、避免创建不必要的对象
- 泛型:消除 unchecked 警告、优先使用泛型方法
- 异常:只针对可恢复条件使用受检异常、优先使用标准异常
- 并发:同步访问共享可变数据、使用 Executor/Task 而非裸线程
JVM 性能关注点
- String 拼接在循环中的使用(StringBuilder)
- 装箱/拆箱的性能开销
- Stream API vs 传统循环的选择
- 集合初始化大小的预分配
常见 Java 并发陷阱
HashMap在多线程环境下的竞态条件volatile仅保证可见性不保证原子性wait()必须在synchronized块中调用- CountDownLatch/CyclicBarrier 的正确使用
五、常见使用误区
| # | 误区 | 说明 | 正确做法 |
|---|---|---|---|
| 1 | ”Lombok 可以解决所有样板代码” | 有些场景(如 JPA Entity)不适合 Lombok | 了解 Lombok 的限制 |
| 2 | ”Stream 一定比循环好” | 简单操作中循环更清晰高效 | 根据场景选择 |
| 3 | ”加了 synchronized 就线程安全了” | 需要确保锁的范围和粒度正确 | 审查锁的持有时间和死锁风险 |
| 4 | ”不需要静态分析工具” | AI 审查和静态分析互补 | SpotBugs + Checkstyle + AI Review |
六、总结
核心价值:
- 基于 Effective Java 的最佳实践审查
- JVM 特有的性能和并发问题检查
- Spring 框架约定的合规性验证
- 与静态分析工具互补
适用人群:
- Java 后端开发者 / 技术 Lead / 架构师
投入产出比:⭐⭐⭐⭐ —— 推荐安装
java-code-review Skill 聚焦于 Java 生态特有的代码质量检查,是通用代码审查工具在 Java 领域的重要补充。
参考资料
- Effective Java (3rd Edition) - Joshua Bloch — 权威书籍
- SpotBugs 官方文档 — 静态分析工具
- JetBrains Java Code Review Checklist — 审查清单
- SonarQube Java Rules — 静态分析规则
- Claude Code AI Code Review for Java Teams — 实践文章
快速安装
npx skills add JackyST0/awesome-agent-skills --skill java-code-review