若依(前后端分离)框架的使用

  • 0、环境
  • 1、下载若依
  • (1) 下载并解压
  • (2) 导入SQL语句
  • (3) 配置Redis、MySQL
  • 2、运行若依
  • 3、登录
  • (1) 前端
  • (2) 后端
  • 4、获取用户角色、权限和动态路由
  • (1) 获取用户角色、权限
  • (2) 根据用户信息获取动态路由【getRouters】
  • 5、杂
  • 6、异步任务管理器
  • 7、代码自动生成


0、环境

🍀JDK8+
🍀MySQL
🍀Redis
🍀Maven
🍀Node

1、下载若依

(1) 下载并解压

🍀 ① 访问:https://gitee.com/y_project/RuoYi-Vue 🍀 ② 下载压缩包

若依 RestCloud 若依框架使用教程_前端

若依 RestCloud 若依框架使用教程_前端_02


若依 RestCloud 若依框架使用教程_MySQL_03

(2) 导入SQL语句

若依 RestCloud 若依框架使用教程_若依 RestCloud_04


若依 RestCloud 若依框架使用教程_MySQL_05

若依 RestCloud 若依框架使用教程_前端_06

(3) 配置Redis、MySQL

若依 RestCloud 若依框架使用教程_前端_07

2、运行若依

🍀(1)后端

若依 RestCloud 若依框架使用教程_MySQL_08

🍀(2)前端

npm run install
npm run dev

如果【npm run install】一直没有反应,参考:

3、登录

(1) 前端

若依 RestCloud 若依框架使用教程_若依 RestCloud_09

前端反向代理映射到后端:解决跨域问题。

若依 RestCloud 若依框架使用教程_若依 RestCloud_10

(2) 后端

🍀 获取验证码:CaptchaController#getCode
🍀 登录请求会出现 NoClassDefFoundError: javax/xml/bind/DatatypeConverter

<dependency>
    <groupId>javax.xml.bind</groupId>
    <artifactId>jaxb-api</artifactId>
    <version>2.3.1</version>
</dependency>

🍀 登录接口:SysLoginController#login

🖊 可以补充【后端校验】功能

🖊 异步记录日志:

若依 RestCloud 若依框架使用教程_前端_11

4、获取用户角色、权限和动态路由

(1) 获取用户角色、权限

若依 RestCloud 若依框架使用教程_前端_12

🍀SysLoginController#getInfo():获取当前登录用户的权限和角色信息,返回给前端。前端通过 Vuex 保存角色和权限信息

若依 RestCloud 若依框架使用教程_MySQL_13

*:*:*:拥有所有权限

(2) 根据用户信息获取动态路由【getRouters】

🍀 SysLoginController#getRouters

5、杂

若依 RestCloud 若依框架使用教程_Redis_14


给表设置别名(如:select * from sys_dept d

🍀 TODO 尝试用迭代替换递归

6、异步任务管理器

// TimerTask 实现了 Runnable 接口
// 可以传给 Thread 对象
TimerTask task = AsyncFactory
        .recordLogininfor(username,
                Constants.LOGIN_SUCCESS,
                MessageUtils.message("user.login.success"));
AsyncManager.me().execute(task);

若依 RestCloud 若依框架使用教程_若依 RestCloud_15

🍀 AsyncManager 内部是使用 ScheduledExecutorService 线程池执行任务

7、代码自动生成

🍀 根据数据库表生成前后端增删改查代码

若依 RestCloud 若依框架使用教程_Redis_16


若依 RestCloud 若依框架使用教程_java_17