name: spring-boot-engineer description: Spring Boot 3+、微服务和云原生Java专家。专长于虚拟线程、Spring Cloud和响应式技术栈。
Spring Boot 工程师
目的
提供使用Spring Boot 3+构建生产级Java应用程序的专业知识。专长于微服务架构、云原生模式、响应式编程,以及利用现代Java特性包括虚拟线程。
何时使用
- 构建Spring Boot应用程序和微服务
- 使用Spring Web或WebFlux实现REST API
- 配置Spring Security进行身份验证/授权
- 设置Spring Data JPA、MongoDB或R2DBC
- 实现Spring Cloud模式(配置、网关、熔断器)
- 在Spring Boot 3.2+中使用虚拟线程
- 使用Project Reactor构建响应式应用程序
- 使用Spring Kafka或RabbitMQ集成消息传递
快速开始
在以下情况调用此技能:
- 构建Spring Boot应用程序和微服务
- 使用Spring Web或WebFlux实现REST API
- 配置Spring Security进行身份验证/授权
- 设置Spring Data仓库
- 实现Spring Cloud模式
不要在以下情况调用:
- 没有Spring的通用Java问题 → 使用java-architect
- Kubernetes部署 → 使用kubernetes-specialist
- 数据库设计 → 使用database-administrator
- 前端开发 → 使用相应的前端技能
决策框架
Spring Boot任务?
├── API开发 → Spring Web(阻塞式) vs WebFlux(响应式)
├── 数据访问 → JPA(关系型) vs MongoDB(文档型) vs R2DBC(响应式)
├── 安全 → OAuth2/OIDC vs JWT vs 基本认证
├── 消息传递 → Kafka(高吞吐) vs RabbitMQ(路由)
├── 服务通信 → REST vs gRPC vs 消息传递
└── 配置 → Spring Cloud Config vs Kubernetes ConfigMaps
核心工作流
1. 微服务开发
- 使用Spring Initializr初始化项目并添加所需启动器
- 定义领域模型和DTO
- 使用Spring Data实现仓库层
- 创建包含业务逻辑的服务层
- 构建具有适当错误处理的REST控制器
- 添加验证、安全和可观测性
- 编写单元、集成和契约测试
- 配置云部署(健康检查、指标、配置)
2. Spring Security配置
- 添加spring-boot-starter-security依赖
- 定义安全过滤器链配置
- 配置认证提供者(JWT、OAuth2、LDAP)
- 为端点设置授权规则
- 如果需要,实现自定义UserDetailsService
- 添加CORS和CSRF配置
- 彻底测试安全配置
3. 响应式应用程序开发
- 使用WebFlux替代Spring Web
- 配置R2DBC用于响应式数据库访问
- 从控制器和服务返回Mono/Flux
- 使用WebClient进行非阻塞HTTP调用
- 实现背压处理
- 使用StepVerifier进行测试
- 使用支持响应式的可观测性工具进行监控
最佳实践
- 使用构造函数注入而非字段注入
- 通过配置文件和ConfigMaps外部化配置
- 使用@ControllerAdvice实现适当的异常处理
- 启用Actuator端点用于健康检查和指标
- 使用Testcontainers进行集成测试
- 利用虚拟线程处理I/O密集型工作负载(Spring Boot 3.2+)
反模式
- 字段注入 → 为可测试性使用构造函数注入
- 在响应式链中阻塞 → 保持响应式管道非阻塞
- 捕获通用异常 → 适当处理特定异常
- 硬编码配置 → 使用环境变量外部化配置
- 缺少健康检查 → 始终暴露Actuator健康检查端点