← ClaudeAtlas

spring-boot-devlisted

Spring Boot 框架层开发助手——三层架构写法与 Spring 注解隐性陷阱。 在编写、修改、重构 Spring Boot 的 Controller / Service / Repository 层代码,或处理 参数校验、全局异常、事务、异步、定时、事件、配置、自动装配问题时使用本技能—— 无论用户是否提到 Spring Boot(写接口 / Controller / Service / 参数校验 / validation / 全局异常 / @Transactional / 事务失效 / 回滚 / @Async / 线程池 / @Scheduled / 定时任务 / @EventListener / 循环依赖 / @ConfigurationProperties / @Value / 配置读不到 / 配置不生效)。 项目依赖含 spring-boot-starter-web 或代码出现 @SpringBootApplication / @RestController / @Service / @Transactional / @Async / @Scheduled / @ConfigurationProperties / @Value / @RestControllerAdvice / @ConditionalOnXxx / @Validated 时激活。 次级触发信号:@Transactional 自调用失效、@Transactional 标在 private 方法、 @Async 默认 SimpleAsyncTaskExecutor、循环依赖报错(BeanCurrentlyInCreationException)、 @Validated 分组校验不触发、@ExceptionHandler 顺序错乱。 不适用(主动让位):ORM CRUD / 分页 / Mapper / 实体映射 → mybatis-plus-dev; 认证 / 权限 / token / SSO → sa-token-dev(仅当项目依赖含 sa-token 或代码出现 StpUtil; 否则由本技能提供 HttpSession / ThreadLocal 最小方案); Java 语言层(判空 / 集合 / 并发 / 异常日志)→ java-coding-guide-pro; 单元测试 → java-unit-test;前端。
BaixuanZhu/skills · ★ 0 · Code & Development · score 78
Install: claude install-skill BaixuanZhu/skills
# Spring Boot 开发助手 面向日常 Java 开发的 Spring Boot **框架层**编码助手。推荐 **3.5.x**(3.x 末线,2025-05 GA),**2.7.x 仍适用**(差异已注明),4.x 已 GA。采用**完全本地自包含**策略:所有知识沉淀于本地 `references/`,运行时不依赖任何外部文档站点。 **只管框架层**:三层架构写法、配置、校验、全局异常、事务、异步、定时、事件、自动装配、SpringDoc。**不管** 项目初始化 / 脚手架(→ spring-boot-init)、ORM(→ mybatis-plus-dev)、Java 语言层(→ java-coding-guide-pro)、单测(→ java-unit-test)、集成测试 / 冒烟 / E2E(→ java-integration-test)。认证鉴权:项目已用 Sa-Token → sa-token-dev;否则本技能提供 HttpSession / ThreadLocal 最小方案。 ## 版本与命名空间(先判 SpringBoot 版本) | SpringBoot | GA 状态 | 命名空间 | 备注 | |---|---|---|---| | 2.7.x | 2.x 末线(仅商业支持) | `javax.*` | 新项目不再选;存量迁移参考 `references/10-condition-bean.md` | | **3.5.x** | **3.x 末线(2025-05 GA),推荐** | `jakarta.*` | JDK 17+ 基线;Spring Framework 6.2 | | 4.x | 已 GA | `jakarta.*` | 新功能线;核心注解语义与 3.x 一致 | - **3.x 起最大破坏**:`javax.*` → `jakarta.*`(`javax.servlet`→`jakarta.servlet`、`javax.validation`→`jakarta.validation`、`javax.persistence`→`jakarta.persistence`)。`javax.*` 依赖(旧版 Sa-Token / 旧版 MyBatis)在 3.x 项目里**直接 ClassNotFound**。 - **JDK 基线**:3.x 起 **JDK 17**;2.7.x 仍支持 JDK 8/11。Java 语言层门控属 **java-coding-guide-pro**。 ## 第 0 步:版本探测与边界判定(收到任务先做这一步) 任务涉及 Spring Boot 框架层(Controller / Service / 配置 / 校验 / 异常 / 事务 / 异步 / 定时 / 事件 / 自动装配)——**先检索项目依赖与代码**: | 探测项 | 方法 | 判定 | |---|---|---| | SpringBoot 版本 | `pom.xml` 读 `spring-boot-starter-parent` 版本,或 `build.gradle` 读 `org.springframework.boot` 插件版本 | 决定 `javax.*` vs `jakarta.*`、JDK 基线、可用特性 | | 命名空间 | 代码里搜 `import javax.` vs `import jakarta.` | 与 SpringBoot 版本须一致,混用即启动失败 | |