# mall-tiny **Repository Path**: macrozheng/mall-tiny ## Basic Information - **Project Name**: mall-tiny - **Description**: mall-tiny是一款基于SpringBoot+MyBatis-Plus的快速开发脚手架,拥有完整的权限管理功能,可对接Vue前端,开箱即用。 - **Primary Language**: Unknown - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: https://www.macrozheng.com - **GVP Project**: No ## Statistics - **Stars**: 118 - **Forks**: 141 - **Created**: 2022-04-23 - **Last Updated**: 2025-05-21 ## Categories & Tags **Categories**: Uncategorized **Tags**: SpringBoot, Java ## README # mall-tiny
## 友情提示 > 1. **快速体验项目**:[在线访问地址](https://www.macrozheng.com/admin/index.html) 。 > 2. **全套学习教程**:[《mall学习教程》](https://www.macrozheng.com) 。 > 3. **视频教程(2023最新版)**:[《mall视频教程》](https://www.macrozheng.com/mall/catalog/mall_video.html) 。 > 4. **微服务版本**:基于Spring Cloud 2021 & Alibaba的项目:[mall-swarm](https://github.com/macrozheng/mall-swarm) 。 > 5. **SpringBoot 3.x版本**:已支持SpringBoot 3.x + JDK 17,具体参考[3.x分支](https://github.com/macrozheng/mall-tiny/tree/3.x) 。 ## 简介 mall-tiny是一款基于SpringBoot+MyBatis-Plus的快速开发脚手架,拥有完整的权限管理功能,可对接Vue前端,开箱即用。 ## 项目演示 mall-tiny项目可无缝对接`mall-admin-web`前端项目,秒变权限管理系统。前端项目地址:https://github.com/macrozheng/mall-admin-web  ## 技术选型 | 技术 | 版本 | 说明 | | ---------------------- | ------- | ---------------- | | SpringBoot | 2.7.0 | 容器+MVC框架 | | SpringSecurity | 5.7.1 | 认证和授权框架 | | MyBatis | 3.5.9 | ORM框架 | | MyBatis-Plus | 3.5.1 | MyBatis增强工具 | | MyBatis-Plus Generator | 3.5.1 | 数据层代码生成器 | | Swagger-UI | 3.0.0 | 文档生产工具 | | Redis | 5.0 | 分布式缓存 | | Docker | 18.09.0 | 应用容器引擎 | | Druid | 1.2.9 | 数据库连接池 | | Hutool | 5.8.0 | Java工具类库 | | JWT | 0.9.1 | JWT登录支持 | | Lombok | 1.18.24 | 简化对象封装工具 | ## 数据库表结构  - 化繁为简,仅保留了权限管理功能相关的9张表,方便自由定制; - 数据库源文件地址:https://github.com/macrozheng/mall-tiny/blob/master/sql/mall_tiny.sql ## 使用流程 ### 环境搭建 简化依赖服务,只需安装最常用的MySql和Redis服务即可,服务安装具体参考[mall在Windows环境下的部署](https://www.macrozheng.com/mall/deploy/mall_deploy_windows.html) ,数据库中需要导入`mall_tiny.sql`脚本。 ### 开发规约 #### 项目包结构 ``` lua src ├── common -- 用于存放通用代码 | ├── api -- 通用结果集封装类 | ├── config -- 通用配置类 | ├── domain -- 通用封装对象 | ├── exception -- 全局异常处理相关类 | └── service -- 通用业务类 ├── config -- SpringBoot中的Java配置 ├── domain -- 共用封装对象 ├── generator -- MyBatis-Plus代码生成器 ├── modules -- 存放业务代码的基础包 | └── ums -- 权限管理模块业务代码 | ├── controller -- 该模块相关接口 | ├── dto -- 该模块数据传输封装对象 | ├── mapper -- 该模块相关Mapper接口 | ├── model -- 该模块相关实体类 | └── service -- 该模块相关业务处理类 └── security -- SpringSecurity认证授权相关代码 ├── annotation -- 相关注解 ├── aspect -- 相关切面 ├── component -- 认证授权相关组件 ├── config -- 相关配置 └── util -- 相关工具类 ``` #### 资源文件说明 ``` lua resources ├── mapper -- MyBatis中mapper.xml存放位置 ├── application.yml -- SpringBoot通用配置文件 ├── application-dev.yml -- SpringBoot开发环境配置文件 ├── application-prod.yml -- SpringBoot生产环境配置文件 └── generator.properties -- MyBatis-Plus代码生成器配置 ``` #### 接口定义规则 - 创建表记录:POST /{控制器路由名称}/create - 修改表记录:POST /{控制器路由名称}/update/{id} - 删除指定表记录:POST /{控制器路由名称}/delete/{id} - 分页查询表记录:GET /{控制器路由名称}/list - 获取指定记录详情:GET /{控制器路由名称}/{id} - 具体参数及返回结果定义可以运行代码查看Swagger-UI的Api文档:http://localhost:8080/swagger-ui/  ### 项目运行 直接运行启动类`MallTinyApplication`的`main`函数即可。 ### 业务代码开发流程 #### 创建业务表 > 创建好`pms`模块的所有表,需要注意的是一定要写好表字段的`注释`,这样实体类和接口文档中就会自动生成字段说明了。  #### 使用代码生成器 > 运行`MyBatisPlusGenerator`类的main方法来生成代码,可直接生成controller、service、mapper、model、mapper.xml的代码,无需手动创建。 - 代码生成器支持两种模式,一种生成单表的代码,比如只生成`pms_brand`表代码可以先输入`pms`,后输入`pms_brand`;  - 生成代码结构一览;  - 另一种直接生成整个模块的代码,比如生成`pms`模块代码可以先输入`pms`,后输入`pms_*`。  #### 编写业务代码 ##### 单表查询 > 由于MyBatis-Plus提供的增强功能相当强大,单表查询几乎不用手写SQL,直接使用ServiceImpl和BaseMapper中提供的方法即可。 比如我们的菜单管理业务实现类`UmsMenuServiceImpl`中的方法都直接使用了这些方法。 ```java /** * 后台菜单管理Service实现类 * Created by macro on 2020/2/2. */ @Service public class UmsMenuServiceImpl extends ServiceImpl* 后台菜单表 Mapper 接口 *
* * @author macro * @since 2020-08-21 */ public interface UmsMenuMapper extends BaseMapper