📚 代码审查 全难度 📦 community

java-code-review

审查 Java 代码安全、风格、Spring Boot 最佳实践。

8.4 /10 ★★★★☆
📅 2026-06-15 · 🕒 5 分钟阅读 · 最后更新 2026-06-15 · 来源: community · 分析测评
#java#code-review#spring
📄 相关文章

📊 评分明细

功能完备度
8.4 核心功能齐全
🎯 易用性
8.1 安装即用
🔧 可扩展性
8.7 支持定制和 fork
🔗 生态协同
8.3 可链式调用
🛡️ 稳定性
8.7 内置验证流程

🎯 适用场景

javacode-reviewspring

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 是否用 PreparedStatementJpaRepository、密码字段是否加密存储、异常是否用 @ControllerAdvice 统一处理。Skill 内部封装了 OWASP Top 10 的 Java 专项检查项,适合安全合规要求高的金融、政企项目。

适合:Spring Boot 中大型项目维护、Java 团队 Code Review 流程、企业内部合规审查。

准备工作

  1. Java 17+ / 21(本 Skill 默认按现代 Java 标准)
  2. Spring Boot 3.x:本 Skill 重点支持 3.x
  3. Maven 或 Gradle:任一构建工具
  4. 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 分类的问题清单。

常见踩坑

  1. @Transactional 失效:方法内 this 调用同类方法,@Transactional 不会触发(走的是原生 this 引用,不经过代理)。Skill 主动识别并建议”抽到独立 Service”。
  2. SQL 注入未识别:用 JdbcTemplate.queryForObject(sql, rowMapper, args)queryForObject(sql + id, ...) 安全,AI 应优先推荐前者。
  3. 硬编码密钥误报:测试代码里 application-test.yml 写死密钥,Skill 可能误报为”生产密钥泄露”。要约定 test 资源目录豁免。
  4. N+1 查询没发现:JPA @OneToMany 懒加载导致循环中 N 次查询,Skill 默认会主动查 equals/hashCode@Transactional(readOnly = true) 配置。
  5. 异常吞掉:catch (Exception e) { e.printStackTrace(); } 啥也不做,Skill 会要求”记录日志 + 重新抛出或包装”。
  6. 循环依赖:两个 @Service 互相注入,启动失败。Skill 会在审查阶段就提示”A 依赖 B,B 依赖 A”。

初级用法

  1. Controller 薄层:@GetMapping("/{id}")id、调 service.findById(id)、返回 ResponseEntity.ok(),不在 Controller 里写业务。
  2. Service 厚层:所有业务规则、判断、事务都集中在 Service,Controller 只负责协议层。
  3. Repository 简洁:JpaRepository<T, ID> 自动获得 CRUD,自定义查询用 @Query + JPQL。

高级玩法

  1. Spring Security 集成审查:检查 @PreAuthorize 是否覆盖敏感接口、密码是否走 BCryptPasswordEncoder
  2. 响应式编程(WebFlux):把同步阻塞代码改成 Mono/Flux,Skill 会主动识别”误用 block()”。
  3. 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 + 单元测试保证质量。

参考链接

实战经验: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 新手的建议

  1. 不要把 Java 当 JavaScript 写:不要滥用 Object、不要所有方法都 static、不要 throws Exception 一把梭。
  2. 多用 composition,少用 inheritance:Java 的继承层次太深会难维护,优先用接口组合。
  3. 学会用 Stream API:stream().filter().map().collect() 比 for 循环简洁,但别为了用而用,简单循环更直白。
  4. 读 Spring 源码:@RestController 怎么工作的、@Transactional 怎么织入的,理解原理后写代码更有信心。
  5. JVM 调优是进阶技能:堆大小、GC 选型、JIT 编译,这些等真遇到性能问题再学不迟。
  6. 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 管理、事务、AOPSpring 项目
静态分析集成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 版)

  1. 对象创建与销毁:使用静态工厂方法、Builder 模式、避免创建不必要的对象
  2. 泛型:消除 unchecked 警告、优先使用泛型方法
  3. 异常:只针对可恢复条件使用受检异常、优先使用标准异常
  4. 并发:同步访问共享可变数据、使用 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 领域的重要补充。


参考资料

📦 快速安装

1 npx (推荐)
npx skills add JackyST0/awesome-agent-skills --skill java-code-review