# springboot-framework **Repository Path**: jamewen/springboot-framework ## Basic Information - **Project Name**: springboot-framework - **Description**: 基于SpringBoot+MyBatis-Plus的快速开发脚手架 - **Primary Language**: Java - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 1 - **Created**: 2021-01-07 - **Last Updated**: 2023-01-14 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # springboot-framework #### 介绍 基于SpringBoot+MyBatis-Plus的快速开发脚手架 ## 说明 为了节省时间和避免写重复代码,制作了一个脚手架,为了以后开发项目方便,也可以再此基础上学习新的东西 ## 技术选型 | 技术 | 版本 | 说明 | | ---------------------- | ------- | ---------------- | | SpringBoot | 2.3.0 | 容器+MVC框架 | | SpringSecurity | 5.3.2 | 认证和授权框架 | | MyBatis | 3.5.4 | ORM框架 | | MyBatis-Plus | 3.3.2 | MyBatis增强工具 | | MyBatis-Plus Generator | 3.3.2 | 数据层代码生成器 | | Swagger-UI | 2.9.2 | 文档生产工具 | | knife4j | 2.0.4 | 文档增强工具 | | Redis | 5.0 | 分布式缓存 | | Druid | 1.1.10 | 数据库连接池 | | JWT | 0.9.0 | JWT登录支持 | | Lombok | 1.18.12 | 简化对象封装工具 | ## 使用流程 ### 环境搭建 只需安装MySql和Redis服务即可,修改对应配置即可,数据库中需要导入`sbmp.sql`脚本 - sql路径:./doc/sql/sbmp.sql ### 项目运行 直接运行启动类`SbmpAdminApplication`的`main`函数即可 ### 组织结构 ``` lua sbmp ├── sbmp-common -- 工具类及通用代码,MyBatisGenerator生成 ├── sbmp-security -- SpringSecurity封装公用模块 └── sbmp-admin -- 后台接口 ``` ### 接口 - knife4这个工具对swagger做了包装,个人感觉会比较好用点 - Api文档:http://localhost:8080/doc.html ![](doc/images/doc.png) - 由于使用了SpringSecurity来实现认证和授权,只开放了注册登录等接口,其他接口都需要token才可以访问,访问需要认证授权接口流程如下。 ### 使用代码生成器 - 运行`MyBatisPlusGenerator`类的main方法来生成代码,可直接生成controller、service、mapper、model、mapper.xml的代码,无需手动创建。 ![img.png](doc/images/gen.png) - 自定义输出位置,generator里的controller,mapper,service还有resources下的mapper.xml文件都需要自行处理, 放到觉得合适的位置,避免下次生成覆盖掉,model基本经常变化,所以放在公共模块里;自定义了model和xml模板输出 - 可以结合`MyBatisPlusGenerator`的代码来看,比较容易些理解些 ![img.png](doc/images/modules.png) ### 项目部署 > 没有集成Docker插件,个人认为不应该把项目跟Docker耦合,应该解耦,将项目打包jar后, 可以根据自己的需求来进行部署 - Dockerfile部署:这种方式,每次更新代码都需要上传新的项目jar包 - 存放的路径 ![](doc/images/img.png) - Dockerfile配置文件 ![](doc/images/dockerfile.png) - 部署脚本deploy.sh ![](doc/images/docker.png) - 自动化Docker部署:类似于jenkins的自动化部署,只是把操作写成脚本,不托管给jenkins而已,自己多动手,可以多了解点linux - 思路: - 在服务器上安装maven,git,拉项目仓库; - 每次在本地修改代码后push上码云后,到服务器上执行pull获取最新代码,然后maven打包; - Dockerfile部署; ![](doc/images/docker2.png)