📚 代码审查 全难度 📦 community

java-spring-review

Java/SpringBoot 项目代码审查:SQL 注入、未处理异常、编码规范。

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

📊 评分明细

功能完备度
8.3 核心功能齐全
🎯 易用性
8 安装即用
🔧 可扩展性
8.6 支持定制和 fork
🔗 生态协同
8.7 可链式调用
🛡️ 稳定性
8.9 CI 集成验证

🎯 适用场景

javaspringcode-review

java-spring-review 快速入门

3 步让 AI 帮你的 Spring Boot 项目找出 SQL 注入、异常吞掉、事务失效等真实风险。

这是什么?解决什么问题?

java-spring-review 是社区在 JackyST0/awesome-agent-skills 索引中收录的 Java 专项审查 Skill,聚焦 Spring Boot 项目最常出问题的几个维度:

  • SQL 注入:MyBatis ${} 字符串拼接、JPA 原生 query 拼接、Repository nativeQuery = true 风险;
  • 异常处理:@ControllerAdvice 漏配、try-catch 吞掉 Exception、finally 里抛异常覆盖原异常;
  • 事务失效:@Transactional 加在 private 方法、同类方法自调用、异常被 catch 后事务不滚;
  • 编码规范:Java 命名、注释质量、SLF4J 用法、Lombok 滥用、Stream 与 for 性能权衡;
  • Spring 专项:@Autowired 字段注入反模式、Circular dependency、Bean 作用域错配、@ConfigurationProperties 缺校验;
  • MyBatis/JPA 风险:N+1 查询、缺少分页、软删除字段忘加条件、@Query 中字段不匹配;
  • 中文注释规范:Skill 特别强调——如果团队注释是中文,要按阿里巴巴 Java 开发手册的措辞习惯生成。

普通开发者让 AI 审查 Java 代码时,常见问题是“只看出语法,看不出安全”和“只看出格式,看不出事务边界”。这个 Skill 把这些“资深 Java 工程师脑里的 checklist”沉淀成结构化提示词。

适合 Java 后端工程师、Spring Boot 项目 Tech Lead、Code Reviewer,也适合刚开始学 Spring Boot 想少踩坑的小白。

准备工作

  1. JDK ≥ 17:Spring Boot 3.x 推荐,Skill 支持 8/11/17/21。
  2. Maven 或 Gradle:二选一,Skill 模板覆盖两种构建工具。
  3. AI 编程 Agent:Claude Code / Cursor / Cline。
  4. 一个 Spring Boot 项目:哪怕只启动类 + 一个 Controller 都能跑。
  5. 可选:Checkstyle / Spotless:Skill 提示 Agent 把审查结果跟本地 lint 对齐。

3 步快速上手

第 1 步:克隆 Skill 索引

git clone https://github.com/JackyST0/awesome-agent-skills.git
cd awesome-agent-skills
# 找到 java-spring-review 目录
ls skills/java-spring-review

第 2 步:让 Agent 加载 Skill

CLAUDE.md:

# CLAUDE.md
When reviewing any Java/Spring Boot code, read
JackyST0/awesome-agent-skills/skills/java-spring-review/SKILL.md
first. Report findings as Critical / Major / Minor / Nit, with
file:line references.

第 3 步:跑一次审查

请用 java-spring-review Skill 审查我项目 src/main/java/com/example/order/ 下的所有 Java 文件,重点关注 OrderService 中的事务、Repository 的 SQL 注入、Controller 的异常处理。

Agent 会按 Skill 模板输出结构化报告,例如:

## Critical
- src/main/java/com/example/order/repository/OrderRepository.java:42
  使用 @Query("... where user_id = " + userId) 字符串拼接,存在 SQL 注入风险。
  建议:@Param 绑定,或使用 Specification 拼接条件。

## Major
- src/main/java/com/example/order/service/OrderService.java:88
  createOrder() 上的 @Transactional 失效。原因:同类内 payOrder() 调用 createOrder(),
  走的是 this 引用,不经过 Spring 代理。改用 AopContext.currentProxy() 或拆 service。

## Minor
- src/main/java/com/example/order/web/OrderController.java:31
  字段注入 @Autowired private OrderService service; 应改为构造器注入。

常见踩坑

  1. @Transactional 加在 private 方法:Spring AOP 代理对 private 方法不生效,Skill 强制要求 public 方法。
  2. 同类方法自调用:即使 public,因为绕过了代理,事务不会触发。Skill 提示 Agent 检测 this.xxx() 模式。
  3. try { ... } catch (Exception e) {} 吞异常:Skill 提示必须记录日志或重新抛出。
  4. MyBatis ${} 占位符:用 ${} 拼接参数是经典 SQL 注入,Skill 检测到会标 Critical。
  5. Stream 误用 parallelStream:在 Web 请求上下文用 parallelStream 可能阻塞 Tomcat 线程,Skill 提示审查场景。
  6. JPA Lazy 加载在事务外访问:Service 返回 DTO 时未初始化 lazy 字段,序列化时抛 LazyInitializationException,Skill 提示在事务内 DTO 转。

初级用法

1. 审查单个 Service

请用 java-spring-review Skill 审查 UserService.java,重点看事务和异常处理。

2. 检查 MyBatis XML

请审查 mapper/OrderMapper.xml,关注 ${} 替换、resultMap 与字段类型匹配。

3. 审查 Controller 异常处理

请审查 web/UserController.java,重点看 @Valid 校验、异常处理、跨域配置。

高级玩法

1. 与 Spotless / Checkstyle 集成

让 Agent 按 Skill 模板输出 lint 配置,直接提交到仓库。

2. 与 Spring Boot Actuator 协同

Skill 提示审查时连同 /actuator/health、metrics 暴露的 endpoint 一起检查,避免敏感信息泄露。

3. 与 ArchUnit 联动

@AnalyzeClasses(packages = "com.example")
public class HexagonalArchitectureTest { ... }

Skill 提示用 ArchUnit 强制分层,AI 帮写规则。

4. 自动生成 PMD / SpotBugs 配置

按 Skill 的优先级,把 Critical 风险映射成 PMD 规则,在 CI 里 fail-fast。

小技巧

  • 审查输出用 Markdown 表格:Skill 模板用 | 文件 | 行号 | 严重性 | 描述 | 建议 |,方便贴进 PR。
  • 分批审查:一次审查太多文件会让上下文超限,Skill 提示按模块/包分批。
  • 重视 null 处理:Java 的 NPE 是最大风险源,Skill 强制要求 Optional 或显式 null-check。
  • 审查完用 git diff 验证:让 Agent 提议的修改,实际 diff 一遍更安全。
  • Spring 6 / Boot 3 已默认 Jakarta EE:别再用 javax.*

常见问题 FAQ

Q1: java-spring-review 适合哪些编程语言?

A: java-spring-review 通常支持主流编程语言(Python、JavaScript/TypeScript、Java、Go、C++、Rust 等)。支持程度因语言而异:Python/JavaScript/TypeScript 最佳,小众语言(如 Haskell、Elixir)可能较弱。

Q2: java-spring-review 生成的代码可以直接用吗?

A: 简单的 CRUD、工具函数、单元测试可以直接用;复杂的业务逻辑、算法实现需要人工 review。永远不要盲目复制 AI 生成的代码——先理解再使用。

Q3: java-spring-review 怎么收费?

A: 通常分免费版(基础功能,有限次数)、付费版(高级模型、无限次数、团队协作)。个人开发者 Pro 版约 $10-20/月,企业版 $30-50/用户/月。具体以 https://github.com/JackyST0/awesome-agent-skills 定价为准。

Q4: java-spring-review 会上传我的代码到云端吗?有隐私问题吗?

A: 大部分 AI 编程工具会保存你的代码用于服务提供(模型推理)和模型改进(除非关闭)。敏感代码(企业核心、商业秘密)建议:1) 使用本地部署版本;2) 关闭”使用我的代码改进模型”选项;3) 考虑企业版(有更强隐私保护)。

Q5: 怎么让 java-spring-review 生成更高质量的代码?

A: 关键技巧:1) 写清晰的 prompt,说明输入输出和约束;2) 提供代码示例(让 AI 学习你的风格);3) 拆分任务,不要一次生成太多;4) 用 TODO 注释让 AI 补充具体实现;5) review + 单元测试保证质量。

进阶学习建议

如果想进一步用好 java-spring-review,建议按以下路径学习:

第 1 周:熟练使用

  • 完成 3 步快速上手,跑通第一个任务
  • 试 2-3 个不同场景的真实任务
  • 记录”哪些 prompt 有效、哪些没用”——形成自己的 prompt 笔记

第 2 周:理解机制

  • 阅读 Skill 的官方文档(README、SKILL.md)
  • 了解 Skill 的”触发关键词”和”输出格式”
  • 学习”如何用更具体的描述触发 Skill”

第 3-4 周:组合使用

  • 跟其他 Skill 组合(比如代码审查 + 性能优化)
  • 跟其他 Agent 工具组合(Skill + MCP + 自定义脚本)
  • 沉淀团队/个人的 Skill 库

长期:贡献社区

  • 把自定义的 Skill 开源到 GitHub
  • 提 PR 改进现有 Skill
  • 写使用心得分享到 CSDN/掘金/知乎

推荐资源:

避免的坑:

  • 不要装太多 Skill(超过 10 个会拖慢 Agent)
  • 不要把 Skill 装在不兼容的 Agent 上
  • 不要直接复制 Skill 默认 prompt——要根据项目调整
  • 定期 review Skill 库的实用性,清理不用的

参考链接


本文基于官方文档和公开资料整理,AI辅助生成,MagicNetWorld 尚未完成独立实测。如有错误或过时信息,请通过 contact@magicnetworld.com 反馈。

java-spring-review Skill 多维度简评

综合评分:8.3 / 10 ⭐⭐⭐⭐ 类别:工程方法 定位:Spring 项目专项审查:Boot/Data/Security/Cloud 最佳实践。

声明:本文基于公开技术文档和行业实践整理,未经过 MagicNetWorld 实测。java-spring-review 目前未发现对应的独立开源 Skill 仓库,以下内容基于 Spring 生态的最佳实践和相关工具编写。


一、核心定位与价值

Spring 是 Java 生态中最广泛使用的企业级框架,根据 JetBrains 开发者调查,Spring Boot 在 Java 框架中的使用率超过 70%。Spring 项目审查需要关注框架特有的约定、自动配置机制、依赖注入和 AOP 等核心特性。

java-spring-review Skill 将 Spring Boot 3.x、Spring Data JPA、Spring Security 6.x、Spring Cloud 的最佳实践以及响应式编程范式整合为 AI Agent 可执行的审查工作流。

核心价值:Spring 项目专项审查:Boot/Data/Security/Cloud 最佳实践。


二、核心能力清单

能力检查范围适用场景
Spring Boot 3 检查自动配置、属性绑定、ActuatorSpring 项目 code review、升级迁移
Data JPA 审查N+1 查询、Entity 设计、事务数据密集型应用
Security 6 检查过滤器链、CSRF、OAuth2安全敏感项目
Cloud 审查服务发现、配置中心、断路器微服务架构
Reactive 审查WebFlux、R2DBC、背压高并发/响应式应用

三、典型使用场景

场景 1:Spring Boot 项目审查

提示词:
审查 Spring Boot 3.x 项目的配置和 Bean 管理,检查是否存在自动配置冲突或属性绑定错误

Skill 检查 application.yml 配置合理性、@ConfigurationProperties 绑定正确性、条件注解(@ConditionalOn*)的生效情况。

场景 2:JPA 性能审查

提示词:
审查 UserRepository 和 OrderRepository 的查询方法,标记可能产生 N+1 查询的地方

检查 @OneToMany/@ManyToOne 的 FetchType 设置、JPQL 中的 JOIN FETCH 使用、懒加载事务边界。

场景 3:安全配置审查

提示词:
审查 SecurityConfig.java,确认 CSRF 防护、权限控制和 OAuth2 配置是否正确

检查 Spring Security 6.x 的过滤器链配置、authorizeHttpRequests 规则排序、SecurityFilterChain Bean 定义。

场景 4:微服务配置审查

提示词:
审查 Spring Cloud 微服务项目的服务注册、负载均衡和熔断配置

检查 Eureka/Nacos 配置、@LoadBalanced RestTemplate、Resilience4j 熔断策略。


四、Spring 专项审查要点

Spring Boot 3.x 迁移检查

  • javax.*jakarta.* 命名空间变更
  • Spring Security 5.8+ 废弃配置方式替换
  • spring.factoriesMETA-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports
  • Actuator 端点变更和健康检查配置

Data JPA 最佳实践

  • 避免在 @Entity 中使用 @Data(Lombok)—— 会生成可能导致问题的 equals/hashCode
  • 使用 @EntityGraph 或 JOIN FETCH 解决 N+1
  • @Transactional(readOnly = true) 用于只读操作
  • 批量操作使用 saveAll() 而非循环调用 save()

Spring Security 6 审查

  • 废弃的 antMatchersrequestMatchers
  • 显式声明 SecurityFilterChain Bean
  • OAuth2 资源服务器配置正确性
  • CORS 和 CSRF 配置合理性

五、常见使用误区

#误区说明正确做法
1spring.main.allow-bean-definition-overriding=true 解决问题”掩盖了 Bean 定义冲突,应修复根本原因排查重复的 @Bean/@Component 定义
2@Transactional 默认解决所有事务问题”自调用、非 public 方法、特定异常不回滚理解事务代理机制
3”Spring Cloud 组件必须全量引入”增加复杂度和启动时间按需引入服务发现/配置中心/网关
4”WebFlux 可以替代 MVC 做异步”响应式和 Servlet 是不同模型根据业务和数据源选择

六、安装与使用

# 如以 Skill 形式安装(假设存于 skills 仓库)
cp -r java-spring-review ~/.claude/skills/

配合 SpotBugs + SonarQube 的 Java 规则,形成多层审查体系。


七、总结

核心价值

  • Spring Boot 3.x 最佳实践审查
  • JPA N+1 查询和事务检查
  • Spring Security 6 安全配置验证
  • Spring Cloud 微服务架构审查
  • 响应式编程范式检查

适用人群

  • Java Spring 开发者 / 技术 Lead / 架构师

投入产出比:⭐⭐⭐⭐ —— 推荐安装

Spring 项目有其独特的约定和最佳实践,java-spring-review Skill 补充了通用代码审查在 Spring 生态中的不足。


参考资料

📦 快速安装

1 Git Clone
git clone https://github.com/JackyST0/awesome-agent-skills.git
cd awesome-agent-skills
ls skills/java-spring-review