SpringBoot 通用组件
将以下提示词粘贴到你的 AI 对话框中:
请根据 https://skillhub.cn/install/skillhub.md,安装 @user_faca7523/springboot-common。
技能介绍
要解决的问题
很多 SpringBoot 项目里,接口响应格式、异常返回、请求链路日志和用户上下文分散在各 Controller 和 Service 中,容易出现字段不一致、异常吞没、日志缺 requestId 等问题。这个技能把这些问题收敛为可复用的通用组件,适合在已有 springboot-init 生成的项目基础上补齐工程骨架。
组件如何工作
它围绕 Result、GlobalExceptionHandler、UserContext、ShowLogAspect 和 ResultAdvice 生成代码:
- 统一响应:生成
Result、ResultCode和RequestUtils,让接口返回带requestId的标准结构。 - 异常处理:生成
BizException和GlobalExceptionHandler,把业务异常统一转成失败响应。 - 用户上下文:通过
UserContextInterceptor读取x-user-id和x-request-id,并用ThreadLocal存储,方便日志和业务代码取用。 - AOP 日志:
@ShowLog注解配合ShowLogAspect打印入参、返回值、耗时和异常标记。 - 依赖管理:更新
pom.xml,按 SpringBoot 版本选择javax.servlet或jakarta.servlet,处理 Lombok、Fastjson2、Commons 等依赖。
适用边界
该技能依赖 springboot-init 生成的基础项目结构,参数里必须提供 artifactId 和 packageName 才能定位项目并生成包路径。它更适合补齐通用组件,而不是替代项目初始化、认证授权或复杂监控体系。若现有项目已有统一响应或拦截器,直接套用可能会产生重复类,需要手动核对包名、配置类和响应处理逻辑。
使用场景
- 新建 SpringBoot 项目后,需要给所有接口统一返回 code、message、data 和 requestId。
- 已有业务代码抛出自定义异常,需要统一转成标准错误响应,避免堆栈直接返回。
- 给关键接口记录入参、返回值、耗时、userId 和 requestId,便于链路排查。
- 在拦截器中读取 x-user-id、x-request-id,并放入 ThreadLocal 供日志和业务调用。
适合人员
- 维护 SpringBoot 接口的后端工程师,需要补齐统一响应和全局异常骨架。
- 负责联调排障的服务端开发,需要接口日志携带 userId、requestId 和耗时。
- 将旧项目迁移到统一规范的 Java 后端,需要生成可审计的异常和日志组件。
- 使用 springboot-init 初始化新项目的团队,需要快速补齐 AOP 日志和用户上下文。