一款轻量、极速的 Spring Boot 3 企业级工程一键生成器
在快节奏的数字化研发环境中,快速搭建稳定、高性能的底层脚手架是项目落地的第一步。本项目提供了一个开箱即用的工程生成器,内置了完善的手机号登录/注册闭环、JWT 双令牌(Dual Token)认证体系以及标准的全局异常和响应规范。非常适合作为现代化企业级应用的初始骨架。
- 📦 极速生成:通过命令行交互或传参,秒级生成包含标准包结构的完整 Maven 工程。
- 🔐 高阶安全认证:内置完整的 JWT 双 Token(AccessToken + RefreshToken)无感续期机制及登出黑名单功能。
- 📱 便捷的账户闭环:原生集成“手机号 + 验证码”登录模式,未注册手机号自动完成注册逻辑。
- 🛠 无痛开发调试:内置 SMS Mock 机制,无需对接真实短信网关即可完成全链路测试。
- 🏗 企业级代码规范:统一的
BaseResponse、标准分页请求、全局异常拦截以及基于注解的 AOP 权限控制。
只需简单三步,即可运行属于你的全新 Spring Boot 工程。
首先,进入生成器源码目录并将其打包为一个可执行的 JAR 文件:
cd spring-boot-generator
mvn clean package -q你可以选择交互模式,或者直接通过命令行参数极速生成:
交互模式:
java -jar target/spring-boot-generator.jar命令行模式:
格式:java -jar spring-boot-generator.jar <工程名> <包名> [输出目录]
# 示例:在 ./projects 目录下生成一个名为 order-service 的工程
java -jar target/spring-boot-generator.jar order-service com.myco ./projects便捷脚本(可选):
# Windows 环境
generate.bat order-service com.myco
# Mac/Linux 环境
./generate.sh order-service com.myco进入刚刚生成的工程目录,初始化数据库并启动服务:
cd ./projects/order-service
# 初始化数据库脚本
mysql -u root -p < sql/init.sql
# 启动 Spring Boot 服务
mvn spring-boot:run💡 Tip: 服务启动后,可直接访问 Knife4j 接口文档:
http://localhost:8080/doc.html
为了提升本地研发效率,项目默认开启了短信 Mock 功能,无需真实的短信服务即可完成登录注册调试。
相关配置 (application.yml):
sms:
mock-enable: true # 默认已开启调试流程:
- 发送验证码:POST
/user/sms/send,传入参数{"phone":"13800000000"} - 执行登录:POST
/user/login/phone,传入参数{"phone":"13800000000","code":"123456"} - 响应结果:系统将返回
accessToken与refreshToken。若isNewUser=true,则说明当前手机号为首次自动注册。
本项目采用安全的双 Token 机制,确保用户体验与系统安全的平衡。
- 常规接口调用:登录后,在所有需要权限的接口请求 Header 中添加 AccessToken:
Authorization: Bearer <accessToken> - Token 无感续期:当 AccessToken 过期(接口返回
40102状态码)后,客户端可通过 RefreshToken 获取新的 AccessToken,实现无感续期:POST /user/token/refresh Header: Refresh-Token: <refreshToken>
生成的工程严格遵循合理的职责分离原则:
├── annotation/ # 自定义注解(如 @AuthCheck 权限校验)
├── aop/ # 切面编程(包含 JWT 鉴权 AOP 拦截器)
├── common/ # 通用基类(BaseResponse / PageRequest / ResultUtils)
├── config/ # 核心配置(Redis / MybatisPlus / Cors / Knife4j)
├── constant/ # 常量池(UserConstant / RedisConstant Key统一管理)
├── controller/ # 控制层(如内置的 SysUserController)
├── exception/ # 异常处理(ErrorCode / BusinessException / GlobalHandler)
├── mapper/ # 数据访问层(MyBatis-Plus Mapper)
├── model/ # 数据模型(entity / dto / vo / enums 分层设计)
├── service/ # 业务逻辑层及 Impl 实现类
└── utils/ # 工具类(JwtUtils / SmsUtils / AvatarUtils)
新工程生成后,默认自带以下核心用户模块的接口,可直接用于业务级联:
| 模块 | 权限层级 | 请求方式 | 接口路径 | 接口说明 |
|---|---|---|---|---|
| 认证 | 🟢 公开 | POST |
/user/sms/send |
发送手机验证码(自带 60s 限频) |
| 认证 | 🟢 公开 | POST |
/user/login/phone |
手机号登录/自动注册 |
| 认证 | 🟢 公开 | POST |
/user/token/refresh |
刷新 AccessToken (续期) |
| 用户 | 🟡 需鉴权 | GET |
/user/me |
获取当前登录用户信息 |
| 用户 | 🟡 需鉴权 | PUT |
/user/me |
更新当前登录个人信息 |
| 用户 | 🟡 需鉴权 | GET |
/user/{id} |
获取指定用户的公开信息 |
| 用户 | 🟡 需鉴权 | POST |
/user/logout |
账号登出(RefreshToken 加入黑名单) |
| 管理 | 🔴 管理员 | GET |
/user/admin/page |
分页查询全量用户 |
| 管理 | 🔴 管理员 | PUT |
/user/admin/ban |
封禁/解封违规用户 |
| 管理 | 🔴 管理员 | DELETE |
/user/admin |
物理/逻辑删除用户 |