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 文件来管理配置,提供 devtestprod 等多环境配置示例。

3. 通用模块

  • 全局异常处理: 提供统一的异常处理机制,捕获并处理项目中的所有异常,确保返回标准化的 API 响应,提升系统的健壮性和用户体验。
  • 通用响应格式: 定义一个统一的 API 响应格式,确保所有接口的响应结构一致,便于前后端协同开发与调试。
  • 基础 CRUD 服务: 提供一个通用的基础服务层,封装常见的增删改查(CRUD)操作,简化业务逻辑开发,提升代码复用性。
  • 单元测试与集成测试: 配置 JUnit 5 和 Mockito,提供基础的测试示例;集成测试中可以考虑使用 Spring Boot Test。
  • 持续集成与部署: Dockerfile 和 Docker Compose 文件,用于容器化部署。

4. 快速开发文档

  • README.md: 详细介绍项目的使用方法、依赖、构建与运行方式,帮助开发者快速上手项目。
  • API 文档: 使用 Swagger 生成并提供在线文档访问方式,方便开发者查看和调试接口。
  • 源码下载: 项目源码托管在 GitHub 上,开发者可以通过以下地址下载和查看源码:GitHub 仓库地址

感谢阅读这篇文章,如果你有任何问题或建议,欢迎在评论区留言!!!

posted @ 2024-09-09 22:05  Abufan  阅读(525)  评论(0)    收藏  举报