用途
Java 25 & Spring Boot 4 Reviewer 是一个面向 Java 25(JDK 25)与 Spring Boot 4.0.x(截至 2026 年 1 月)应用的代码审查技能。它用于在审查、检查、审计或分析 Java/Spring Boot 代码(文件、模块、PR 等)时提供结构化指导。技能强调:没有代码上下文绝不审查,必须要求提供文件或 diff;所有发现必须引用文件路径与行号;强制基线为 Java 25 + Spring Boot 4.0.x(最新稳定版),若构建文件显示不同版本则需标记。
主要能力
技能按多个审查维度组织,包括:
- 构建与配置:验证构建文件中的 Java 与 Spring Boot 版本,检查 starter 名称(webmvc/aspectj/test-classic),扫描已弃用注解与 Jackson 3 迁移问题。
- API 与正确性:检查控制器/服务边界、验证与错误处理(ProblemDetail)、公共 API 的空安全契约。
- 包结构:识别所用架构风格(分层、按模块分包、modulith、tomato、DDD+hex),验证目录/包布局是否匹配所选模式,标记跨模块泄漏(如控制器直接使用仓库、领域层出现基础设施类型)。
- 数据访问:检查仓库放置位置(仅聚合根)、N+1、分页、投影、事务。
- 安全:认证/授权、输入验证与密钥处理、敏感数据日志。
- 性能与弹性:缓存策略、虚拟线程评估(必须在确认 10,000+ 并发任务且为 I/O 密集型工作负载后才可推荐)、线程池大小是否匹配工作负载、超时、重试、退避。
技能还提供快速参考的审查触发点,涵盖迁移与 Boot 4、空安全(JSpecify)、安全、性能、架构、现代 Java 25 等类别,并列出反模式与对应做法。
使用方式
技能定义了四步工作流:
- 范围与约束:询问范围(单文件、模块或完整 PR)、目标版本(确认 Java 25 + Spring Boot 4.0.x)、关注领域(安全、数据、性能、架构、空安全、迁移或全部)、测试期望(单元、集成、契约、性能)。
- 加载参考:根据关注点加载对应参考文件,如 spring-boot-4-patterns.md、java-25-features.md、security-checklist.md、performance-patterns.md、architecture-patterns.md、jspecify-null-safety.md;Spring Data JPA 使用 spring-data-jpa 技能,迁移使用 springboot-migration 技能。
- 执行审查轮次:依次进行 Pass A 构建+配置、Pass B API+正确性、Pass C 包结构、Pass D 数据访问、Pass E 安全、Pass F 性能+弹性。
- 报告发现:按严重程度排序,包含类别、文件+行号、影响、修复建议,使用 Critical / High / Medium / Low 结构。
技能还提供快速检查清单:5 分钟安全快速检查、5 分钟性能快速检查、5 分钟迁移快速检查,以及 30 分钟以上的综合审查。
适用场景
技能列出常见审查场景:
- 快速 PR 审查:要求变更文件或使用 Glob 查找,读取变更文件,加载 java-25-features.md 与 spring-boot-4-patterns.md,运行快速安全+性能检查,报告带 file:line 的发现。
- 安全审计:加载 security-checklist.md,Glob 查找控制器、服务、安全配置,系统检查 OWASP Top 10,聚焦 SQL 注入、认证、授权、密钥。
- 性能审查:加载 performance-patterns.md,Glob 查找仓库、服务,检查 N+1、缺失分页、无缓存,审查连接池与异步配置。
- 架构审查:加载 architecture-patterns.md,理解当前模式,检查违规,验证 Spring Modulith 模块。
- 迁移审查:加载 java-25-features.md 与 spring-boot-4-patterns.md,Glob 所有 Java 文件,识别仍在使用旧模式,优先快速改进。
限制
技能明确说明不适用于以下情况:Kotlin 代码(本技能专用于 Java)、非 Spring Boot 框架(Micronaut、Quarkus)、仅构建/配置文件(pom.xml、build.gradle)——除非审查依赖、前端代码(React、Angular)——除非是 Spring MVC 模板。
此外,技能注明 Spring Boot 4 与 Java 25 仍在积极演进,部分模式与最佳实践可能随新版本发布而需要更新,应始终查阅官方文档获取最新指导。技能强调在提出架构建议前必须分析工作负载,不要在不了解实际并发、流量模式和工作负载特征的情况下建议虚拟线程、响应式模式或架构变更。JSpecify 是空安全基线,应避免 org.springframework.lang 注解,使用包级 @NullMarked + 类型使用处的显式 @Nullable,覆盖方法时复制空安全注解。