Spring Boot 项目通用模板
Spring Boot 项目开发通用模板
1. 项目结构
my-springboot-init/
│
├── doc/
│ ├── swagger.png/ # Swagger API文档截图
│
├── sql/
│ ├── create_table.sql/ # 数据库表创建SQL脚本
│
├── src/
│ ├── main/
│ │ ├── java/
│ │ │ └── com/
│ │ │ └── example/
│ │ │ └── springbootinit/
│ │ │ ├── annotation/ # 自定义注解包:用于存放项目中的自定义注解
│ │ │ │ ├── AuthCheck/ # 权限校验相关的注解
│ │ │ │
│ │ │ ├── aop/ # 面向切面编程(AOP)包:存放切面类,如日志、权限检查等
│ │ │ │ ├── AuthInterceptor.java/ # 权限校验 AOP
│ │ │ │ ├── LogInterceptor.java/ # 请求响应日志 AOP
│ │ │ │
│ │ │ ├── common/ # 通用组件包:存放项目中通用的工具类或封装类
│ │ │ │ ├── BaseResponse.java/ # 通用返回类
│ │ │ │ ├── DeleteRequest.java/ # 删除请求封装类
│ │ │ │ ├── ErrorCode.java/ # 自定义错误码定义
│ │ │ │ ├── PageRequest.java/ # 分页请求封装类
│ │ │ │ └── ResultUtils.java/ # 返回工具类,用于处理统一返回格式
│ │ │ │
│ │ │ ├── config/ # 配置包:存放Spring Boot相关的配置类
│ │ │ │ ├── CorsConfig.java/ # 全局跨域配置
│ │ │ │ ├── CosClientConfig.java/ # 腾讯云对象存储客户端配置
│ │ │ │ ├── JsonConfig.java/ # Spring MVC JSON 配置
│ │ │ │ └── MyBatisPlusConfig.java/ # MyBatis Plus 配置
│ │ │ │
│ │ │ ├── constant/ # 常量包:存放项目中使用的常量类
│ │ │ │ ├── CommonConstant/ # 通用常量定义
│ │ │ │ └── UserConstant/ # 用户相关常量定义
│ │ │ │
│ │ │ ├── exception/ # 异常处理包:存放自定义异常类及全局异常处理类
│ │ │ │ ├── BusinessException.java/ # 自定义业务异常类
│ │ │ │ ├── GlobalExceptionHandler.java/ # 全局异常处理器
│ │ │ │ └── ThrowUtils.java/ # 抛异常工具类
│ │ │ │
│ │ │ ├── manager/ # 业务处理层:用于处理特定业务逻辑,如用户管理、订单管理等
│ │ │ │ └── CosManager.java/ # 腾讯云对象存储操作管理类
│ │ │ │
│ │ │ ├── controller/ # 控制器层:处理请求并返回响应
│ │ │ │ └── UserController.java/ # 用户相关请求的控制器
│ │ │ │
│ │ │ ├── service/ # 服务层:定义业务逻辑接口
│ │ │ │ ├── impl/ # 服务层实现
│ │ │ │ │ └── UserServiceImpl.java/ # 用户服务接口实现
│ │ │ │ └── UserService.java/ # 用户服务接口
│ │ │ │
│ │ │ ├── mapper/ # 数据库访问层:存放Mapper接口
│ │ │ │ └── UserMapper.java/ # 用户数据访问接口
│ │ │ │
│ │ │ ├── model/ # 数据模型层:定义数据结构
│ │ │ │ ├── dto/ # 数据传输对象
│ │ │ │ ├── entity/ # 数据库实体类
│ │ │ │ │ └── User.java/ # 用户实体类
│ │ │ │ ├── enums/ # 枚举类型
│ │ │ │ └── vo/ # 视图对象
│ │ │ │
│ │ │ └── utils/ # 工具类
│ │ │ ├── NetUtils.java/ # 网络工具类
│ │ │ ├── SpringContextUtils.java/ # Spring 上下文获取工具
│ │ │ └── SqlUtils.java/ # SQL 工具类
│ │ │
│ │ └── MainApplication.java # 主应用类:Spring Boot应用的入口类,包含main方法
│ │
│ ├── resources/
│ │ ├── mapper/
│ │ │ └── UserMapper.xml # MyBatis Mapper XML文件
│ │ ├── application.yml # 主配置文件
│ │ ├── application-dev.yml # 开发环境配置
│ │ ├── application-prod.yml # 生产环境配置
│ │ └── application-test.yml # 测试环境配置
│ │
│ └── test/
│ └── java/
│ └── com/
│ └── example/
│ └── springbootinit/
│ └── service/
│ └── UserServiceTest.java/ # 用户服务单元测试类
│
├── .gitignore # Git忽略文件:列出项目中应被Git忽略的文件和目录
├── pom.xml # Maven项目管理文件:列出项目依赖项、插件、构建配置等
└── README.md # 项目说明文档:介绍项目背景、结构、运行方式等
2. 模板特点
主流框架 & 特性
- Spring Boot 2.7.x
- Spring MVC
- MyBatis + MyBatis Plus 数据访问(开启分页)
- Spring Boot 调试工具和项目处理器
- Spring AOP 切面编程
- Spring Scheduler 定时任务
- Spring 事务注解
数据存储
- MySQL 数据库
- Redis 内存数据库
工具类
- Easy Excel 表格处理
- Hutool 工具库
- Apache Commons Lang3 工具类
- Lombok 注解
业务特性
- Spring Session Redis 分布式登录
- 全局请求响应拦截器(记录日志)
- 全局异常处理器
- 自定义错误码
- 封装通用响应类
- Swagger + Knife4j 接口文档
- 自定义权限注解 + 全局校验
- 全局跨域处理
- 长整数丢失精度解决
- 多环境配置
application.yml: 使用 YAML 文件来管理配置,提供dev、test、prod等多环境配置示例。
3. 通用模块
- 全局异常处理: 提供统一的异常处理机制,捕获并处理项目中的所有异常,确保返回标准化的 API 响应,提升系统的健壮性和用户体验。
- 通用响应格式: 定义一个统一的 API 响应格式,确保所有接口的响应结构一致,便于前后端协同开发与调试。
- 基础 CRUD 服务: 提供一个通用的基础服务层,封装常见的增删改查(CRUD)操作,简化业务逻辑开发,提升代码复用性。
- 单元测试与集成测试: 配置 JUnit 5 和 Mockito,提供基础的测试示例;集成测试中可以考虑使用 Spring Boot Test。
- 持续集成与部署: Dockerfile 和 Docker Compose 文件,用于容器化部署。
4. 快速开发文档
- README.md: 详细介绍项目的使用方法、依赖、构建与运行方式,帮助开发者快速上手项目。
- API 文档: 使用 Swagger 生成并提供在线文档访问方式,方便开发者查看和调试接口。
- 源码下载: 项目源码托管在 GitHub 上,开发者可以通过以下地址下载和查看源码:GitHub 仓库地址。
感谢阅读这篇文章,如果你有任何问题或建议,欢迎在评论区留言!!!
浙公网安备 33010602011771号