SuperAPI AI 工具集

springboot-patterns

编程与开发

查看项目

更新于 10-15 23:24

技能介绍

本技能整理 Spring Boot 的工程化模式,围绕分层架构给出目录约定:config 存放 @Configuration,controller 为薄层 @RestController,service 承载业务逻辑,repository 负责 JPA 数据访问,model 下分 entity/dto/mapper,另有 exception 与 security 包。

主要能力与用法: 一、REST 控制器。用 @RestController + @RequestMapping 定义版本化路径,构造器注入服务,用 @Valid @RequestBody 校验请求体,@ResponseStatus 指定状态码,分页返回 Page。 二、JPA 实体与仓储。实体使用 @Entity、@Table、UUID 主键、@ManyToOne(LAZY)、@OneToMany(mappedBy, cascade, orphanRemoval)、@Enumerated(STRING)、@CreationTimestamp。仓储继承 JpaRepository,可用 @Query 配合 JOIN FETCH 或 @EntityGraph 预取关联,避免 N+1。 三、服务层。类上加 @Transactional(readOnly = true),写方法单独标注 @Transactional;通过 Mapper 在 DTO 与实体间转换,并可发布领域事件。 四、全局异常处理。@RestControllerAdvice 配合 @ExceptionHandler 返回 RFC 7807 的 ProblemDetail,对校验异常收集字段错误。

反模式提示:控制器直接注入仓储、默认 FetchType.EAGER、控制器返回裸实体、只读方法缺失只读事务、捕获泛型 Exception、硬编码配置。检查清单要求薄控制器、LAZY 关联、DTO 出入参、服务级事务、请求 DTO 校验注解、统一 ProblemDetail、消除 N+1、集成测试使用 @SpringBootTest 与 Testcontainers。

限制:资料未提供具体依赖版本、构建文件、测试代码细节与安装命令,相关事实暂未提供。