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、代码自动生成
🍀 根据数据库表生成前后端增删改查代码