用途
Spring Boot Engineer 是一个用于 Spring Boot 3.x 应用开发的技能,帮助开发者生成配置、创建 REST 控制器、实现 Spring Security 6 认证流程、搭建 Spring Data JPA 仓库等。它覆盖从需求分析到部署的完整开发流程,适合需要快速搭建规范 Spring Boot 服务的场景。
主要能力
该技能围绕以下核心工作流展开:
- 分析需求:识别服务边界、API、数据模型和安全需求。
- 设计架构:规划微服务、数据访问、云集成和安全方案,并在编码前确认设计。
- 实现:使用构造器注入和分层架构创建服务。
- 安全加固:添加 Spring Security、OAuth2、方法安全和 CORS 配置,并验证安全规则能编译并通过测试。
- 测试:编写单元、集成和切片测试,运行
./mvnw test(或./gradlew test)并确认全部通过。 - 部署:通过 Actuator 配置健康检查和可观测性,验证
/actuator/health返回 UP。
技能还提供按上下文加载的参考文档,涵盖 Web 层、数据访问、安全、云原生和测试等主题。
使用方式
技能提供可直接复制使用的最小工作结构,包括:
- 实体(Entity):使用
@Entity、@Table、@Id、@GeneratedValue等注解定义数据模型。 - 仓库(Repository):继承
JpaRepository并声明查询方法。 - 服务(Service):使用构造器注入,配合
@Transactional控制事务范围。 - REST 控制器:使用
@RestController、@RequestMapping、@Validated等注解暴露 API。 - DTO(record):使用 Java record 定义请求对象并附加校验注解。
- 全局异常处理器:使用
@RestControllerAdvice统一处理校验异常和实体未找到异常。 - 测试切片:使用
@WebMvcTest、MockMvc、@MockBean编写控制器测试。
适用场景
适用于需要构建 Spring Boot 3.x 后端服务的开发任务,包括 REST API 开发、Spring Security 6 认证流程实现、Spring Data JPA 数据访问层搭建、微服务架构设计、云原生集成以及相关测试编写。
限制与约束
技能明确规定了必须遵守和禁止的做法:
必须做:
- 使用构造器注入
- 在每个变更端点使用
@Valid @RequestBody校验 API 输入 - 使用
@ConfigurationProperties绑定类型安全配置 - 使用合适的构造型注解(
@Service、@Repository、@RestController) - 多步写入使用
@Transactional,读取使用@Transactional(readOnly = true) - 在
@RestControllerAdvice中捕获领域异常,返回问题详情而非堆栈跟踪 - 通过环境变量或 Spring Cloud Config 外部化密钥
禁止做:
- 使用字段注入(在字段上使用
@Autowired) - 跳过 API 端点的输入校验
- 在适用
@Service/@Repository/@Controller时使用@Component - 混用阻塞和响应式代码(如在 WebFlux 链中调用
.block()) - 在
application.properties/application.yml中存储密钥或凭据 - 硬编码 URL、凭据或环境特定值
- 使用已弃用的 Spring Boot 2.x 模式(如
WebSecurityConfigurerAdapter)
该技能由 @jeffallan 维护,他是 Synergetic Solutions 的首席顾问。