关于 code-reviewer
code-reviewer 是面向 Spring Boot 4 Java 项目的结构化代码审查技能,要求先了解代码上下文,再按需检查并以文件路径和行号呈现具体发现。
主要功能
- 01确认审查范围与版本
- 02按需加载参考资料
- 03检查构建配置与 API
- 04审查架构、数据和安全
- 05发现项附文件路径与行号
适用场景
- 01审查 Spring Boot 4 拉取请求
- 02检查安全与性能问题
- 03评估迁移遗留问题
- 04审查架构边界
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ a-pavithraa/ springboot-skills-marketplace --skill code-reviewer安装后在 Claude Code 中输入/code-reviewer确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
references/architecture-patterns.mddomain-modeling.mdjava-25-features.mdjspecify-null-safety.mdperformance-patterns.mdsecurity-checklist.mdspring-boot-4-patterns.mdvalue-objects-patterns.md详细介绍
Spring Boot 4 审查员(Java 17+)
目的
使用此技能,对任意受支持的 Java 版本上的 Spring Boot 4 代码进行结构化审查(最低要求为 17;在全新创建的 Boot 4 项目中,21 LTS 和 25 较为常见)。审查发现应以实际代码库为依据,并且只针对适用的重点领域查阅参考文件。
重要规则
- 没有代码上下文时,切勿进行审查。如果未提供任何代码,请索要文件、差异或相关模块。
- 发现问题时,务必注明文件路径和行号。
- 以 Spring Boot 4 为目标版本。阅读项目的
pom.xml/build.gradle,确定实际使用的 Java 版本(Boot 4 支持 17、21 和 25)。不要将 Java 17 或 21 标记为“过旧”——它们都是有效的 Boot 4 基准版本。 - 在建议采用虚拟线程、改写为响应式架构或进行架构变更前,先分析工作负载。
- 对于新编写的 Boot 4 代码,优先采用 JSpecify 作为空安全基准;但在标记每个旧版注解前,先确认代码库是否仍处于迁移过程中。
- 如果某项结论取决于框架行为,优先参考 Spring 和 Java 的官方指南。
工作流
第 1 步:确认范围
收集准确审查所需的最少上下文:
- 范围:单个文件、模块、PR 还是整个代码库。
- 目标版本:必要时从构建文件确认 Java 和 Spring Boot 版本。
- 重点领域:迁移、架构、数据访问、安全、性能、空安全或全部领域。
- 测试背景:用户是只需要审查发现,还是也需要修复建议和测试影响分析。
第 2 步:只加载与审查相关的参考资料
按需加载参考资料:
| 重点领域 | 阅读内容 |
|---|---|
| Spring Boot 4 迁移模式和框架差异 | references/spring-boot-4-patterns.md |
| Java 25 语言特性和并发采用情况 | references/java-25-features.md |
| 安全审查 | references/security-checklist.md |
| 性能审查 | references/performance-patterns.md |
| 架构边界和打包方式 | references/architecture-patterns.md |
| 领域模型结构 | references/domain-modeling.md |
| 值对象密集型设计 | references/value-objects-patterns.md |
| 空安全检查 | references/jspecify-null-safety.md |
必要时转交给其他技能:
- 深入处理仓库、查询和关系时,使用
spring-data-jpa。 - 制定分阶段升级计划或执行升级时,使用
springboot-migration。
第 3 步:执行审查流程
只执行与请求相符的审查流程。进行完整审查时,按以下顺序执行。
流程 A:构建和配置
- 在
pom.xml或build.gradle中核实 Java 和 Spring Boot 版本。 - 检查 starter 名称和迁移遗留项。
- 扫描 Jackson 3 迁移问题、过时的测试注解和版本漂移。
流程 B:API 正确性
- 检查控制器和服务的边界。
- 检查验证和错误处理。
- 检查公共 API 和方法重写中的可空性。
流程 C:架构和打包方式
- 识别当前使用的架构风格。
- 验证包结构是否与该风格一致。
- 标记边界泄漏,例如控制器直接访问仓库,或领域代码中出现基础设施类型。
流程 D:数据访问
- 检查仓库的位置和聚合边界。
- 检查 N+1 查询、缺少分页、投影不匹配和事务误用。
流程 E:安全
- 检查身份验证和授权。
- 检查输入验证和不安全的查询模式。
- 检查密钥处理和敏感信息日志记录。
流程 F:性能和弹性
- 检查缓存策略、无界读取、异步用法和远程调用行为。
- 只有在代码和工作负载确有需要时,才评估虚拟线程的使用。
- 检查超时、重试和连接池假设。
发现问题的快速提示
将这些提示用作审查线索,而不是代码证据的替代品。
Spring Boot 4 和迁移
- 旧版 starter 名称
- 旧版 Mockito 测试注解
- 在 Boot 4 代码库中沿用 Jackson 2 假设
- 使用
TestRestTemplate,而不是RestTestClient - 手动编写
HttpServiceProxyFactory样板代码,而不是使用@ImportHttpServices - 使用自定义 API 版本控制,而不是原生的
spring.mvc.apiversion.* - 使用
@ConcurrencyLimit或原生@Retryable,却未使用@EnableResilientMethods
空安全
- 项目使用 JSpecify 时缺少
package-info.java - 代码已迁移到 JSpecify,但仍有
org.springframework.lang注解 - 覆盖方法缺少复制的空值性注解
架构
- 控制器直接调用存储库
- 在 API 中暴露 JPA 实体
- Modulith 边界泄漏
- 业务逻辑集中在控制器中
性能
- 在循环中遍历实体
- 缺少分页
- 忽略读密集型路径上的投影机会
- 没有工作负载证据就建议使用虚拟线程
安全
- 特权操作缺少授权
- 存在 SQL 或 NoSQL 注入风险
- 源代码或日志中包含机密信息
- 不安全地暴露错误信息
报告格式
按严重性排序列出发现,并使用以下模板:
## Critical
- **[Category]**: Issue summary
- **File**: `path/to/File.java:123`
- **Impact**: What can fail, leak, or regress
- **Fix**: Specific change to make
## High
- ...
## Medium
- ...
## Low
- ...
如果没有发现问题,请明确说明,并指出任何仍存在的盲点,例如尚未审查的模块、缺少的测试或不可用的运行时上下文。
常见审查模式
快速 PR 审查
- 阅读有更改的文件。
- 加载
references/spring-boot-4-patterns.md和references/java-25-features.md。 - 如果差异涉及相关领域,再添加
references/security-checklist.md或references/performance-patterns.md。 - 仅报告附有文件和行号引用的具体发现。
安全审查
- 阅读
references/security-checklist.md。 - 重点检查控制器、服务入口、安全配置和持久化边界。
- 报告可利用性和受影响的入口,而不只是指出违反的规则。
架构审查
- 阅读
references/architecture-patterns.md。 - 如果代码体现出丰富领域模型方案,再添加
references/domain-modeling.md或references/value-objects-patterns.md。 - 根据当前架构风格,报告边界不匹配和耦合问题。
迁移审查
- 阅读
references/spring-boot-4-patterns.md和references/java-25-features.md。 - 重点检查迁移遗留问题、过时 API 和不完整的采用情况。
- 如果用户需要的是分阶段升级计划而非审查,请使用
springboot-migration。
不适用此技能的情况
- 以 Kotlin 为主的代码库
- Micronaut 或 Quarkus 等非 Spring Java 框架
- 缺少代码上下文的通用审查指导
- 仅涉及前端的更改
评论
支持 Markdown