0、环境

🍀JDK8+
🍀MySQL
🍀Redis
🍀Maven
🍀Node

1、下载若依

(1) 下载并解压

🍀 ① 访问:https://gitee.com/y_project/RuoYi-Vue
🍀 ② 下载压缩包
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

(2) 导入SQL语句

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

(3) 配置Redis、MySQL

在这里插入图片描述

2、运行若依

🍀(1)后端
在这里插入图片描述

🍀(2)前端

npm run install
npm run dev

如果【npm run install】一直没有反应,参考:https://zgqwillbeverylucky.blog.csdn.net/article/details/136130572

3、登录

(1) 前端

在这里插入图片描述

前端反向代理映射到后端:解决跨域问题。
在这里插入图片描述

(2) 后端

🍀 获取验证码:CaptchaController#getCode
🍀 登录请求会出现 NoClassDefFoundError: javax/xml/bind/DatatypeConverter 异常,可在【ruoyi-framework】模块加入下面的依赖解决此问题。出现此问题是因为你使用的JDK版本大于8

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

🍀 登录接口:SysLoginController#login
🖊 可以补充【后端校验】功能
🖊 异步记录日志:
在这里插入图片描述

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

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

在这里插入图片描述

🍀SysLoginController#getInfo():获取当前登录用户的权限和角色信息,返回给前端。前端通过 Vuex 保存角色和权限信息
在这里插入图片描述

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

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

🍀 SysLoginController#getRouters

5、杂

在这里插入图片描述
给表设置别名(如: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);

在这里插入图片描述

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

7、代码自动生成

🍀 根据数据库表生成前后端增删改查代码
在这里插入图片描述
在这里插入图片描述

Logo

快速构建 Web 应用程序

更多推荐