# springboot-init **Repository Path**: ahs-0/springboot-init ## Basic Information - **Project Name**: springboot-init - **Description**: ------springboot启动模板------ - **Primary Language**: Java - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2024-05-14 - **Last Updated**: 2024-11-02 ## Categories & Tags **Categories**: Uncategorized **Tags**: SpringBoot ## README # SpringBoot初始化模板 ## 介绍 SpringBoot初始化模板,包含SpringBoot、MyBatis、MySQL、Redis、Swagger、Lombok等常用依赖,以及一些常用的配置。 ## 项目目录 ``` ├── pom.xml ├── src │   ├── main │   │   ├── java │   │   │   └── com │   │   │   └── example │   │   │   └── springboot │   │   │   ├── annotation -- 注解 │   │   │   │   └── AutoFill.java -- 自动填充注解 │   │   │   │   └── AuthCheck.java -- 权限校验 │   │   │   │   └── RateLimiting.java -- 限流注解 │   │   │   ├── aop -- AOP │   │   │   │   └── AutoFillAspect.java -- 自动填充切面 │   │   │   │   └── AuthInterceptor.java -- 权限校验切面 │   │   │   │   └── RateLimitingAspect.java -- 限流切面 │   │   │   ├── common -- 通用类 │   │   │   │   └── BaseResponse.java -- 基础返回类 │   │   │   │   └── ErrorCode.java -- 错误码 │   │   │   │   └── ResultUtils.java -- 返回工具类 │   │   │   │   └── DeleteRequest.java -- 删除请求 │   │   │   │   └── PageRequest.java -- 分页请求 │   │   │   ├── config -- 配置类 │   │   │   │   └── Knife4jConfiguration.java -- Swagger配置 │   │   │   │   └── MybatisPlusConfig.java -- MyBatisPlus配置 │   │   │   │   └── RedisTemplateConfig.java -- Redis配置 │   │   │   │   └── MinioConfig.java -- minio对象存储配置 │   │   │   │   └── RedissonConfig.java -- Redisson配置 │   │   │   │   └── WebMvcConfig.java -- WebMvc配置 │   │   │   ├── contant -- 常量类 │   │   │   │   └── AutoFillConstant.java -- 自动填充常量 │   │   │   │   └── OperationType.java -- 操作类型常量 │   │   │   │   └── CommonConstant.java -- 通用常量 │   │   │   │   └── UserConstant.java -- 用户常量 │   │   │   ├── controller -- 控制器 │   │   │   │   └── UserController.java -- 用户控制器 │   │   │   │   └── FileController.java -- 文件操作控制器 │   │   │   ├── exception -- 异常类 │   │   │   │   └── BusinessException.java -- 业务异常类 │   │   │   │   └── GlobalExceptionHandler.java -- 全局异常处理类 │   │   │   │   └── ThrowUtils.java -- 抛异常工具类 │   │   │   ├── job -- 定时任务 │   │   │   │   └── TestJob.java -- 测试定时任务 │   │   │   ├── mapper -- Mapper接口 │   │   │   │   └── UserMapper.java -- 用户Mapper接口 │   │   │   ├── manager -- 通用服务接口 │   │   │   │   └── MinioManager.java -- Minio文件管理器 │   │   │   │   └── RedisLimiterManager.java -- RedisLimiter限流基础服务 │   │   │   ├── pojo -- 实体类 │   │   │   │   └── dto -- DTO │   │   │   │   └── user -- 用户DTO │   │   │   │   └── entity -- 实体类 │   │   │   │   └── User.java -- 用户实体类 │   │   │   │   └── enums -- 枚举 │   │   │   │   └── UserRoleEnum.java -- 用户角色枚举 │   │   │   │   └── vo -- VO │   │   │   │   └── UserVO.java -- 用户VO │   │   │   ├── service -- 服务接口 │   │   │   │   └── impl -- 服务接口实现类 │   │   │   │   └── UserServiceImpl.java -- 用户服务接口实现类 │   │   │   │   └── UserService.java -- 用户服务接口 │   │   │   ├── utils -- 工具类 │   │   │   │   └── BaseContext.java -- 获取当前线程用户ID工具类 │   │   │   │   └── ExcelUtils.java -- Excel相关工具类 │   │   │   │   └── SqlUtils.java -- SQL 工具 │   │   │   └── SpringbootApplication.java -- 启动类 │   │   ├── resources │   │   │   ├── application.yml │   │   │   ├── mapper │   │   │   ├── templates │   └── test │   └── java │   └── com │   └── example │   └── springboot │   └── SpringbootApplicationTests.java ``` ## 项目启动 1. 修改application.yml中的数据库连接信息 2. 运行SpringbootApplication.java <<<<<<< HEAD 3. 接口文档http://localhost:8080/api/doc.html#/home ## 模板特点 ### 主流框架 & 特性 - Spring Boot 2.7.6 - Spring MVC - MyBatis + MyBatis Plus 数据访问(开启分页) - Spring Boot 调试工具和项目处理器 - Spring AOP 切面编程 - Spring Scheduler 定时任务 - Spring 事务注解 ### 数据存储 - MySQL 数据库 - Redis 内存数据库 - Elasticsearch 搜索引擎 ### 工具类 - Hutool 工具库 - Apache Commons Lang3 工具类 - Lombok 注解 ### 业务特性 - 业务代码生成器(支持自动生成 Service、Controller、数据模型代码) - Spring Session Redis 分布式登录 - 公共字段自动注入注解 - 全局异常处理器 - 限流注解 - minio对象存储 - 自定义错误码 - 封装通用响应类 - Swagger + Knife4j 接口文档 - 自定义权限注解 + 全局校验 - 全局跨域处理 - 长整数丢失精度解决 - 多环境配置 ### 单元测试 - JUnit5 单元测试 - 示例单元测试类 ## 快速上手 > 所有需要修改标记了 `todo`,便于大家找到修改的位置~ ### MySQL 数据库 1)修改 `application.yml` 的数据库配置为你自己的: ```yml spring: datasource: driver-class-name: com.mysql.cj.jdbc.Driver url: jdbc:mysql://localhost:3306/db username: root password: 123456 ``` ### Redis 分布式登录 1)修改 `application.yml` 的 Redis 配置为你自己的: ```yml spring: redis: database: 1 host: localhost port: 6379 timeout: 5000 password: 123456 ``` 2)修改 `application.yml` 中的 session 存储方式: ```yml spring: session: store-type: redis ``` 3)移除 `MainApplication` 类开头 `@SpringBootApplication` 注解内的 exclude 参数: 修改前: ```java @SpringBootApplication(exclude = {RedisAutoConfiguration.class}) ``` 修改后: ```java @SpringBootApplication ``` ### Redisson限流 1)修改 `application.yml` 的 redisson 配置为你自己的: ```yml spring: redisson: # redisson配置 database: 1 host: localhost port: 6379 ``` ### Elasticsearch 搜索引擎 1)修改 `application.yml` 的 Elasticsearch 配置为你自己的: ```yml elasticsearch: uris: http://localhost:9200 username: root password: 123456 ``` ### minio对象存储 1)修改 `application.yml` 的 minio 配置为你自己的: ```yml minio: config: url: http://localhost:9005 #ip地址 accessKey: admin # 账号 secretKey: 12345678 # 密码 secure: false #如果是true,则用的是https而不是http,默认值是true bucketName: "homework" # 桶的名字 相当于文件夹 ```