java-spring-review
Java/SpringBoot 项目代码审查:SQL 注入、未处理异常、编码规范。
评分明细
适用场景
java-spring-review 快速入门
3 步让 AI 帮你的 Spring Boot 项目找出 SQL 注入、异常吞掉、事务失效等真实风险。
这是什么?解决什么问题?
java-spring-review 是社区在 JackyST0/awesome-agent-skills 索引中收录的 Java 专项审查 Skill,聚焦 Spring Boot 项目最常出问题的几个维度:
- SQL 注入:MyBatis
${}字符串拼接、JPA 原生 query 拼接、RepositorynativeQuery = 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 想少踩坑的小白。
准备工作
- JDK ≥ 17:Spring Boot 3.x 推荐,Skill 支持 8/11/17/21。
- Maven 或 Gradle:二选一,Skill 模板覆盖两种构建工具。
- AI 编程 Agent:Claude Code / Cursor / Cline。
- 一个 Spring Boot 项目:哪怕只启动类 + 一个 Controller 都能跑。
- 可选: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; 应改为构造器注入。
常见踩坑
@Transactional加在 private 方法:Spring AOP 代理对 private 方法不生效,Skill 强制要求 public 方法。- 同类方法自调用:即使 public,因为绕过了代理,事务不会触发。Skill 提示 Agent 检测 this.xxx() 模式。
try { ... } catch (Exception e) {}吞异常:Skill 提示必须记录日志或重新抛出。- MyBatis
${}占位符:用${}拼接参数是经典 SQL 注入,Skill 检测到会标 Critical。 - Stream 误用
parallelStream:在 Web 请求上下文用 parallelStream 可能阻塞 Tomcat 线程,Skill 提示审查场景。 - 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/掘金/知乎
推荐资源:
- 官方文档:https://github.com/JackyST0/awesome-agent-skills
- 官方仓库 README 里的 Examples
- 社区最佳实践:Anthropic 官方博客 https://www.anthropic.com/blog
- 国内社区:CSDN AI 板块、掘金 AI 板块
避免的坑:
- 不要装太多 Skill(超过 10 个会拖慢 Agent)
- 不要把 Skill 装在不兼容的 Agent 上
- 不要直接复制 Skill 默认 prompt——要根据项目调整
- 定期 review Skill 库的实用性,清理不用的
参考链接
- awesome-agent-skills 索引:https://github.com/JackyST0/awesome-agent-skills
- java-spring-review 子目录:https://github.com/JackyST0/awesome-agent-skills/tree/main/skills/java-spring-review
- Spring Boot 官方文档:https://spring.io/projects/spring-boot
- 阿里巴巴 Java 开发手册:https://github.com/alibaba/p3c
- MyBatis 官方文档:https://mybatis.org/mybatis-3/zh/index.html
- ArchUnit 用户指南:https://www.archunit.org/userguide/html/000_Index.html
- SpotBugs:https://spotbugs.github.io/
- OWASP Top 10:https://owasp.org/Top10/
本文基于官方文档和公开资料整理,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 检查 | 自动配置、属性绑定、Actuator | Spring 项目 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.factories→META-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 审查
- 废弃的
antMatchers→requestMatchers - 显式声明 SecurityFilterChain Bean
- OAuth2 资源服务器配置正确性
- CORS 和 CSRF 配置合理性
五、常见使用误区
| # | 误区 | 说明 | 正确做法 |
|---|---|---|---|
| 1 | ”spring.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 生态中的不足。
参考资料
- Spring Boot 3.x 官方文档 — 官方文档
- Spring Security 6.x Reference — 官方文档
- Spring Data JPA 文档 — 官方文档
- Spring Cloud Documentation — 官方文档
- Spring Boot 3.0 Migration Guide — 官方迁移指南
快速安装
git clone https://github.com/JackyST0/awesome-agent-skills.git
cd awesome-agent-skills
ls skills/java-spring-review