若依(前后端分离)框架的使用
- 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
🍀 ② 下载压缩包
(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、代码自动生成
🍀 根据数据库表生成前后端增删改查代码