SuperAPI AI 工具集

spring-boot-engineer

编程与开发

查看项目

更新于 10-16 09:08

技能介绍

用途

Spring Boot Engineer 是一个用于 Spring Boot 3.x 应用开发的技能,帮助开发者生成配置、创建 REST 控制器、实现 Spring Security 6 认证流程、搭建 Spring Data JPA 仓库等。它覆盖从需求分析到部署的完整开发流程,适合需要快速搭建规范 Spring Boot 服务的场景。

主要能力

该技能围绕以下核心工作流展开:

  1. 分析需求:识别服务边界、API、数据模型和安全需求。
  2. 设计架构:规划微服务、数据访问、云集成和安全方案,并在编码前确认设计。
  3. 实现:使用构造器注入和分层架构创建服务。
  4. 安全加固:添加 Spring Security、OAuth2、方法安全和 CORS 配置,并验证安全规则能编译并通过测试。
  5. 测试:编写单元、集成和切片测试,运行 ./mvnw test(或 ./gradlew test)并确认全部通过。
  6. 部署:通过 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 的首席顾问。