name
springboot-init
description
Define development specifications for Spring Boot monolithic projects, supporting multiple technology stack configurations.
技术栈配置 | 2. 项目结构 | 3. 编码规范 | 4. 统一响应/异常
权限/工具/命名 | 6. 执行工作流 | 7. 禁止事项 | 8. 代码模板
配置项
推荐选型
说明
JDK
17 / 21
Spring Boot 3.x 必须 17+
ORM
MyBatis-Plus (MP)
默认选型,快速开发。追求极致性能选 Flex
工具库
Hutool / Guava
减少重复轮子,增强开发效率
权限
Sa-Token / Security
快速开发选 Sa-Token,复杂企业级选 Security
manager : 仅当涉及“跨模块协调”或“第三方集成(OSS/短信)”时启用,避免直接耦合。
common/config : 存放 BaseResponse, GlobalExceptionHandler, MybatisPlusConfig 等。
DTO (Request): Controller 输入专用。
VO : Controller 输出专用。严禁 将 Entity 直接返回前端。
Entity : 与数据库表一一对应,仅在 Service/Mapper 层流通。
返回类型 :强制使用 BaseResponse<T>。
参数校验 :多参数封装为对象,使用 @RequestBody + Validation。
Service :业务逻辑收敛于此。MP 风格:extends ServiceImpl<Mapper, Entity> implements Service。
2.2 Model (Entity/DTO/VO)
强制实现 :Serializable 并声明 serialVersionUID。
Java 17+ :优先使用 record 定义 DTO/VO。
MP 注解 :@TableName, @TableId(type = IdType.ASSIGN_ID), @TableLogic。
ResultUtils : 提供 success(data), error(errorCode, msg)。
BusinessException : 业务逻辑错误必须抛出此异常,由 GlobalExceptionHandler 统一捕获。
ErrorCode : 维护全局状态码(如 40000 参数错误、40100 未登录)。
Sa-Token : 拦截器校验 StpUtil.checkLogin() 或 @SaCheckRole。
Spring Security : SecurityFilterChain 配置及 @PreAuthorize。
StrUtil.isBlank, BeanUtil.copyProperties, JSONUtil.toJsonStr, SecureUtil.md5。
类型
模式
示例
Controller
XxxController
UserController
Service
XxxService/Impl
UserServiceImpl
DTO
XxxAdd/Update/QueryRequest
UserQueryRequest
VO
XxxVO
UserVO
DAO
XxxMapper
UserMapper
6. 执行工作流 (Actionable Workflows)
确认配置 :识别 company, project, jdk 等变量。
生成骨架 :创建目录树,生成 pom.xml, application.yml (见 templates)。
注入基础类 :生成 common, exception, utils, config 包内容。
建模 :创建 Entity -> Mapper -> Service。
业务端点 :定义 Request/VO (Record) -> Controller 逻辑。
接口文档 :补充 Swagger 注解。
禁止 在 Controller 编写任何业务逻辑。
禁止 Entity 跨过 Service 直接暴露给 Controller。
禁止 未经统一异常处理直接抛出原始 Exception。
禁止 硬编码角色或权限字符串。
参考 references/code-templates.md ,包含:
BaseResponse, ErrorCode, BusinessException, GlobalExceptionHandler, ResultUtils, ThrowUtils, MybatisPlusConfig, JsonConfig, OpenApiConfig。