# TwoRice快速开发框架 **Repository Path**: StandFast/tworice ## Basic Information - **Project Name**: TwoRice快速开发框架 - **Description**: 🎉基于SpringBoot+Vue的单服务开发框架 - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 10 - **Forks**: 0 - **Created**: 2023-03-06 - **Last Updated**: 2026-01-08 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # TwoRice单服务快速开发框架
本系统的【角色管理】中有两大功能,分别是【权限管理】和【设置人员】,设置人员又可以理解成为当前角色绑定用户账号。
### 0.2、权限管理
权限管理是对当前角色设置访问权限,界面中展示的全部都是菜单选项,可以理解为【设置当前角色进入系统后可以看到的左侧菜单项】。未勾选的选项不会显示在当前角色的菜单栏。
### 0.3、设置人员

此操作就是为角色绑定用户账号,左侧是待选列表,右侧是已经选了(已绑定)的用户账号。这里无需确认,每一次的【移除人员】和【添加人员】操作都会实时保存。
### 0.4、菜单渲染
所有角色、所有用户的登录界面都是同一个,系统在接收登录请求后,获取当前用户的角色绑定了哪些权限(菜单),就把哪些菜单渲染到界面左侧,所以决定当前账户有哪些菜单项是通过给角色设置权限。
两个不同角色的用户登录系统后左侧菜单列表也不同,但两个相同角色下的用户登录系统后的菜单项是相同的。
### 0.4、系统交互

### 0.5、快速上手
#### 0.5.1、如何快速创建页面
##### ① 代码生成
在“系统工具-代码生成”功能中,您可以填写表名、字段以及字段类型等信息,然后执行生成操作。
生成成功后,后端项目会自动生成包括`client`、`service`、`dao`、`po`等文件,同时会在数据库中创建相应的表结构。
前端项目则会在`code`文件夹下生成相应的`vue`页面文件。
##### ② 重启后端项目
由于后端项目不支持热加载,所以需要重启项目来使刚刚生成代码生效。
##### ③ 添加菜单
在“系统管理-资源菜单”中,您可以将刚刚生成的 Vue 页面名称填入相应位置。
##### ④ 重新登录
重新登录系统,获取最新的资源菜单,即可看到刚刚生成的页面了。
#### 0.5.2、改造系统底层
系统通过依赖注入的方式实现了代码的灵活性,如果需要修改系统底层代码,可以通过继承相关类并重写方法来实现。此外,系统还提供了丰富的配置和插件功能,几乎所有功能都可以通过配置文件来进行配置。您可以查看下方的详细文档,通过标题快速索引以获取更多信息。
## 1、启动
### 1.1、导入SQL文件
本系统采用`MySQL8.0`,注意数据库版本;SQL文件在`sql`目录下,请使用最新版本的SQL文件。
**注意**:SQL文件不含建库语句,需要自行建库。
### 1.2、启动服务端
> 推荐使用IDEA开发工具
使用IDEA开发工具打开项目根目录,并加载`tworice-admin`下的pom文件。
等待加载依赖后启动`cn.tworice.Application`。
### 1.3、启动客户端
> 客户端使用Vue2开发,推荐使用IDEA开发工具启动
#### 1.3.1、安装依赖
在命令行模式进入`tworice-web`根目录下执行`npm install`安装依赖。
#### 1.3.2、启动
① 命令行形式启动:依赖安装完成后在该目录下输入命令行`npm run serve`启动。
② IDEA运行:添加`npm`运行配置。

## 2、技术选型
| 技术 | 说明 | 官网 |
| ------------ | ----------------------------- | ---------------------------------------------------- |
| SpringBoot | v2.3.12.RELEASE,容器+MVC框架 | https://spring.io/projects/spring-boot |
| MyBatis | v3.5.13,ORM框架 | http://www.mybatis.org/mybatis-3/zh/index.html |
| MyBatis-Plus | v3.5.4,简化MyBatis开发 | [MyBatis-Plus (baomidou.com)](https://baomidou.com/) |
| MySQL | v8.0 | https://www.oracle.com/kr/mysql/ |
| Hikari | 数据库连接池 | https://github.com/alibaba/druid |
| JWT | JWT登录支持 | https://github.com/jwtk/jjwt |
| Lombok | 简化对象封装工具 | https://github.com/rzwitserloot/lombok |
| Swagger-UI | 文档生成工具 | https://github.com/swagger-api/swagger-ui |
| zXing | 谷歌二维码生成技术 | https://github.com/*zxing*/zxing |
| EasyCaptcha | Java图形验证码 | https://gitee.com/ele-admin/EasyCaptcha |
| wangEditor | 富文本编辑器 | https://www.wangeditor.com/ |
| easyExcel | 阿里巴巴Excel操作工具 | https://easyexcel.opensource.alibaba.com/ |
| Node.JS | v16.18.0 | https://nodejs.org/ |
| Vue | v2.7.16 | https://cn.vuejs.org/ |
## 3、项目结构
| 模块 | 说明 | 是否必须 |
| ------------------- | ------------------------ | -------- |
| `tworice-admin` | 基础组件,可针对方法重写 | 是 |
| `tworice-admin-web` | 管理端前端,使用Vue2开发 | 否 |
## 4、组件
### 4.1、时效Map
项目中内嵌自研有时效的Map,即`AgingMap`,可用来取代`Redis`;如项目数据较为庞大请切换为`Redis`等其它`NoSQL`。
### 4.2、文件上传
#### 4.2.1、本地文件上传
默认状态使用本地文件上传,目的是为了尽可能的轻量,不依赖第三方项目及应用,所以文件上传默认采用本地上传。
本地文件上传分为**开发环境**和生产环境,采用`tworice.env`配置进行切换,取值范围`dev`、`prod`,分别采用不同的上传方式。
文件的上传路径由配置文件`tworice.file.path`控制,如果是开发环境,默认为`项目根目录\upload\`,建议不要修改。
使用:
```java
@Resource
private UploadService uploadService;
```
本地上传可配置文件上传加密,增加以下配置可激活文件加密:
```yml
tworice:
file:
cryption: true
```
#### 4.2.2、Minio文件上传
① 引入Maven必要依赖
```xml