专用于 Java Spring Boot 后端开发的专业技能。当用户提出以下需求时,应调用此技能:构建 REST API、创建 Spring Boot 项目、编写 Java 后端服务、配置数据库访问(JPA / MyBatis)、处理认证与授权(Spring Security / JWT)、实现微服务架构(Spring Cloud)、排查 Spring Boot 相关错误、审查 Java 代码质量,或执行任何与 Spring Boot / Java 后端相关的任务。
Java Spring Boot 后端开发
功能概述
Java Spring Boot 后端开发是一项面向实际任务的技能,主要用于A 用于构建生产级 Java Spring Boot 后端服务的专业技能;Trigger 条件;
核心要点
- 当用户意图涉及时激活此技能 :.;
- Buildi。
- 它将相关步骤、工具调用和结果整理方式集中到统一流程中,帮助使用者更快完成目标并减少重复操作。
使用与执行
使用时应结合输入条件选择合适的执行方式,核对必要参数、依赖环境与输出内容,并按原始要求处理异常情况。该技能适合需要稳定复用相关能力的场景,可作为自动化工作流的一部分,也便于后续检查、调整和扩展。从功能定位来看,该技能强调把分散的操作要求整理成清晰、可复用的处理流程,使用户能够围绕既定目标快速准备输入、选择执行方式并获得结构化结果。
结果检查与注意事项
实际使用前应先确认任务范围、数据来源、运行环境、必要权限和关键参数,再依据技能说明逐步执行;若输入条件不完整,应先补齐信息或采用保守配置,避免因错误假设导致结果偏离需求。执行过程中需要关注工具调用是否成功、接口或依赖是否可用、输出格式是否符合预期,并对异常提示、缺失字段和边界情况进行处理;涉及批量任务时,还应保存进度,避免中断后重复操作。
Java Spring Boot 后端开发
一项专注于构建生产级 Java Spring Boot 后端服务的专业技能。
触发条件
当用户意图涉及以下场景时,启用该技能:
- 构建/创建 Spring Boot 项目或应用
- 编写 REST API、Controller、Service 或 Repository
- 配置数据库访问(Spring Data JPA、MyBatis、MyBatis-Plus)
- 实现认证与授权(Spring Security、JWT、OAuth2)
- 微服务架构(Spring Cloud、Nacos、Feign、Gateway)
- Java 代码审查、重构或性能优化
- 调试 Spring Boot 启动错误、依赖冲突或运行时问题
- 编写单元测试/集成测试(JUnit 5、Mockito、TestContainers)
- 部署 Spring Boot 应用(Docker、K8s、CI/CD)
技术栈偏好
构建工具
- Maven 为默认首选,除非用户明确指定使用 Gradle
- 以
spring-boot-starter-parent作为父 POM - 遵循标准 Maven 目录结构
Java 版本
- 默认使用 Java 17 LTS,除非用户另行指定(也支持 Java 8、11、21)
关键依赖(常用 Starter)
| 场景 | Starter |
|---|---|
| Web / REST API | spring-boot-starter-web |
| 数据库(JPA) | spring-boot-starter-data-jpa |
| 数据库(MyBatis) | mybatis-spring-boot-starter |
| 校验 | spring-boot-starter-validation |
| 安全 | spring-boot-starter-security |
| Redis | spring-boot-starter-data-redis |
| RabbitMQ / Kafka | spring-boot-starter-amqp / spring-kafka |
| 定时任务 | spring-boot-starter-quartz |
| 监控端点(Actuator) | spring-boot-starter-actuator |
| 测试 | spring-boot-starter-test |
| Lombok | lombok(scope: provided) |
| MapStruct | mapstruct(scope: provided) |
| Swagger / OpenAPI | springdoc-openapi-starter-webmvc-ui |
数据库规范
- 关系型数据库默认首选 MySQL;若用户明确指定,则使用 PostgreSQL
- 对于简化 CRUD 操作,推荐使用 MyBatis-Plus 而非原生 MyBatis
- 使用 JPA 时,简单查询优先采用派生查询(derived query),避免过度使用
@Query - 务必配置连接池(HikariCP 为默认实现,仅需合理调优)
- 生产环境中使用 Flyway 或 Liquibase 进行数据库 Schema 迁移
项目架构
采用清晰关注点分离的分层架构:
src/main/java/com/example/project/ ├── controller/ # REST 端点,请求/响应 DTO ├── service/ # 业务逻辑接口 │ └── impl/ # Service 实现类 ├── mapper/ # 数据访问层(MyBatis)或 repository/(JPA) ├── entity/ # 数据库实体类 ├── dto/ # 数据传输对象 │ ├── request/ # 入参 DTO │ └── response/ # 出参 DTO ├── config/ # 配置类 ├── common/ # 公共工具、常量、枚举 │ ├── exception/ # 自定义异常及全局异常处理器 │ ├── result/ # 统一 API 响应包装器 │ └── util/ # 工具类 └── Application.java
核心架构规则
- Controller 层 — 仅处理 HTTP 相关逻辑:参数绑定、校验、响应封装。禁止包含任何业务逻辑。
- Service 层 — 所有业务逻辑集中于此。Service 为无状态组件,通过
@Service注入。 - Mapper / Repository 层 — 仅负责数据访问,不得包含业务逻辑。
- DTO 分离 — 禁止直接将 Entity 类暴露于 API 接口。Entity 与 DTO 之间必须显式映射。
- 使用 MapStruct 进行 Entity-DTO 映射(字段较复杂时);字段简单时可手动映射。
编码规范
命名约定
- Controller:
XxxController - Service 接口:
XxxService - Service 实现类:
XxxServiceImpl - Mapper:
XxxMapper - Entity:
Xxx(单数名词,对应数据库表名,使用 snake_case) - DTO:
XxxRequest、XxxResponse、XxxDTO
API 设计
- 遵循 RESTful 规范(正确使用 HTTP 方法、资源命名)
- 对请求体使用
@Valid进行校验 - 统一返回格式:
{ "code": 200, "message": "success", "data": { ... } } - 使用
@RestControllerAdvice+@ExceptionHandler实现全局异常处理 - 列表类 API 必须支持分页:使用 Spring Data 的
Pageable或自定义分页 DTO
错误处理
- 定义继承自
RuntimeException的自定义业务异常 - 全局异常处理器捕获所有异常,并返回结构化响应
- 按恰当级别记录日志(ERROR:未预期异常;WARN:业务规则违反)
日志
- 通过 Lombok
@Slf4j使用 SLF4J - 按语义选择日志级别:ERROR(异常)、WARN(业务规则违规)、INFO(关键业务事件)、DEBUG(开发调试细节)
- 严禁记录敏感信息(密码、Token、PII)
配置最佳实践
application.yml 结构
server:
port: 8080
spring:
profiles:
active: dev
datasource:
url: jdbc:mysql://localhost:3306/mydb?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai
username: ${DB_USERNAME}
password: ${DB_PASSWORD}
driver-class-name: com.mysql.cj.jdbc.Driver
hikari:
maximum-pool-size: 20
minimum-idle: 5
jpa:
hibernate:
ddl-auto: validate
show-sql: false
open-in-view: false
mybatis-plus:
mapper-locations: classpath*:mapper/**/*.xml
configuration:
map-underscore-to-camel-case: true
log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
logging:
level:
com.example.project: info
多环境配置
application-dev.yml— 本地开发环境(使用 H2 或本地 MySQL)application-test.yml— 测试环境application-prod.yml— 生产环境(外部化配置,禁止硬编码密钥)
测试策略
- 单元测试:针对 Service 层,使用 JUnit 5 + Mockito
- 集成测试:针对 Controller 层,使用
@WebMvcTest或MockMvc - Repository 测试:使用
@DataJpaTest搭配 H2 内存数据库 - 使用 TestContainers:对需真实数据库(MySQL、Redis 等)的集成测试场景
- 测试方法命名规范:
methodName_stateUnderTest_expectedBehavior(例如:createUser_withValidInput_returnsCreatedUser)
常见陷阱规避指南
- 循环依赖 — 避免构造器注入形成循环;必要时使用
@Lazy或重构依赖关系 - 事务未回滚 — 确保
@Transactional注解作用于 public 方法 - N+1 查询问题 — JPA 中使用
@EntityGraph或JOIN FETCH;MyBatis 中使用标签 - 懒加载时 Session 已关闭 — 关闭
spring.jpa.open-in-view,并主动预加载所需关联数据 - Swagger 未扫描到 Controller — 确保 Controller 所在包位于组件扫描路径内
- 日期时区问题 — JDBC URL 中始终设置
serverTimezone=Asia/Shanghai;优先使用Instant/LocalDateTime,避免使用Date - Docker 镜像体积过大 — 使用多阶段构建;避免引入冗余镜像层
参考材料
详细参考资料存放于 references/ 目录下:
references/spring-boot-common-patterns.md— 常见编码模式与实践方案references/troubleshooting.md— 高频报错及其解决方案
在当前任务涉及调试或实现特定模式时,请加载对应参考文件。
热门AI工具
相关专题
本专题聚焦 Java 企业级系统中的多租户架构设计,讲解数据隔离策略、租户路由机制、数据库分库分表方案以及权限控制模型。通过真实 SaaS 系统案例,帮助开发者构建可扩展的多租户应用架构。
216
2026.06.29
本专题围绕Spring Boot 3中的响应式编程体系展开,系统讲解 WebFlux 的非阻塞模型、Reactive Streams、Mono 与 Flux 使用方式,以及在高并发场景下的性能优势。结合真实后端案例,帮助开发者构建低延迟、高吞吐的响应式服务架构。
180
2026.06.22
本专题围绕 Java 分布式系统中的事务一致性问题展开,系统讲解分布式事务的核心理论与解决方案。内容包括 Seata AT/TCC 模式原理、事务协调机制、服务调用链一致性保障以及高并发场景下的数据一致性设计策略。通过真实微服务案例,帮助开发者构建可靠的分布式事务处理体系。
161
2026.06.16
系统讲解 Java 中消息队列的集成与应用实践,涵盖消息队列的核心概念(生产者/消费者/Topic/Queue/Exchange)、RabbitMQ 的交换机类型与 Spring AMQP 集成、Kafka 分区/副本/消费者组机制与 Spring Kafka 配置、RocketMQ 事务消息与顺序消息、消息可靠投递(确认机制/持久化/重试)、消费端幂等性保障(唯一ID/去重表)、死信队列与延迟消息处理、消息积压监控与扩容策略,帮助开发
235
2026.05.18
系统讲解 Java 项目中缓存技术的选型与实践,涵盖本地缓存方案(HashMap 手动缓存/Guava Cache/Caffeine 高性能缓存)的使用与淘汰策略配置、Redis 数据结构(String/Hash/List/Set/ZSet)在缓存场景的应用、Jedis / Lettuce / Redisson 客户端选型、Spring Cache 注解(@Cacheable/@CachePut/@CacheEvict)的声明式缓存、缓
402
2026.05.15
聚焦 Java 应用的容器化与云原生部署,讲解 Dockerfile 编写规范与 Java 应用镜像构建、多阶段构建(Multi-stage Build)减小镜像体积、Jib / Buildpacks 免 Dockerfile 镜像构建方案、JVM 容器感知参数(-XX:MaxRAMPercentage)配置、Docker Compose 编排多服务(应用 + MySQL + Redis)、容器健康检查与资源限制、Kubernetes
280
2026.05.11
系统讲解 Java 项目构建工具的使用与进阶配置,涵盖 Maven 的 POM 文件结构、生命周期(clean/compile/package/install/deploy)与插件机制、依赖范围(compile/provided/test/runtime)与传递依赖管理、多模块聚合与继承、私有 Nexus 仓库发布,以及 Gradle 的 Groovy / Kotlin DSL 语法、Task 自定义与增量构建、依赖版本目录(Versi
229
2026.05.09
在 Java Stream 基础之上进一步深入函数式编程,涵盖 @FunctionalInterface 注解与自定义函数式接口设计、四种方法引用(静态/实例/对象/构造器)的使用场景、Lambda 中的 effectively final 变量捕获规则、函数组合(andThen/compose)与柯里化技巧、Comparator 链式比较器构建、CompletableFuture 异步函数式编排、Reactor / RxJava 响应
248
2026.05.08
热门下载
相关下载
精品课程
共0课时 | 0人学习
共0课时 | 0人学习
共0课时 | 0人学习
最新文章
