一、说明
1、ruoyi-fast默认使用的ehcache存储登录信息
2、基于业务扩展,现在需要改成redis
3、ruoyi-fast是最早的版本,springboot + thymeleaf + mybatis + ehcache,现在ruoyi.vip找不到这个项目了
4、ruoyi.vip也给出了 文档,不过没有具体步骤;而且给出的是模块化的项目改造流程
5、需要改造的源码,并做调整即可
6、改造前,一定要先备份代码;很重要
二、准备工作
下载改造代码
https://pan.baidu.com/s/13JVC9jm-Dp9PfHdDDylLCQ
1)密码: y9jt
2)说明: 云盘是所有组件的代码,只需要用到【集成redis实现集群会话管理】
改造代码示例图
映射关系确认
改造代码模块 |
ruoyi-fast |
改造内容 |
备注 |
ruoyi-admin |
|
SysUserOnlineController.java |
1.替换类即可,不过命名需要改下;改造代码系统类为Sys开头,而fast没有Sys |
ruoyi-common |
|
类覆盖即可 |
|
ruoyi-framework |
|
类覆盖即可 |
|
ruoyi-system |
|
一个配置类 一个字典类 |
|
三、操作
按文档,删除或者注释掉类
// 删除的java类
ruoyi-framework\src\main\java\com\ruoyi\framework\shiro\service\SysShiroService.java
ruoyi-framework\src\main\java\com\ruoyi\framework\shiro\session\OnlineSessionDAO.java
ruoyi-framework\src\main\java\com\ruoyi\framework\shiro\web\filter\online\OnlineSessionFilter.java
ruoyi-framework\src\main\java\com\ruoyi\framework\shiro\web\filter\sync\SyncOnlineSessionFilter.java
ruoyi-framework\src\main\java\com\ruoyi\framework\shiro\web\session\OnlineWebSessionManager.java
ruoyi-framework\src\main\java\com\ruoyi\framework\shiro\web\session\SpringSessionValidationScheduler.java
ruoyi-system\src\main\java\com\ruoyi\system\mapper\SysUserOnlineMapper.java
ruoyi-system\src\main\java\com\ruoyi\system\service\ISysUserOnlineService.java
ruoyi-system\src\main\java\com\ruoyi\system\service\impl\SysUserOnlineServiceImpl.java
// 删除mybatis的数据库操作
ruoyi-system\src\main\resources\mapper\system\SysUserOnlineMapper.xml
1)有的类找不到,就不需要删除了
2)ruoyi.vip的文档需要删除ehcache的依赖以及配置,但是存在业务依赖,又不想改造业务代码,就没删除;也就是可以不删除
pom加入依赖
<!-- shiro整合redis -->
<dependency>
<groupId>org.crazycake</groupId>
<artifactId>shiro-redis</artifactId>
<version>3.3.1</version>
<exclusions>
<exclusion>
<groupId>org.apache.velocity</groupId>
<artifactId>velocity</artifactId>
</exclusion>
</exclusions>
</dependency>
<!-- springboot整合redis -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
<!-- jwt jar-->
<dependency>
<groupId>com.auth0</groupId>
<artifactId>java-jwt</artifactId>
<version>3.4.0</version>
</dependency>
1)redis已经了的,可以不需要重复加入
2)集成了jwt,没做其他配置
3)如果之前没有集成redis,application.yml需要增加redis的配置
# 数据源配置
spring:
# redis配置
redis:
database: 0
host: 127.0.0.1
port: 6379
password:
timeout: 6000ms # 连接超时时长(毫秒)
lettuce:
pool:
max-active: 1000 # 连接池最大连接数(使用负值表示没有限制)
max-wait: -1ms # 连接池最大阻塞等待时间(使用负值表示没有限制)
max-idle: 10 # 连接池中的最大空闲连接
min-idle: 5 # 连接池中的最小空闲连接
通过rebuild排查错误并处理
1)代码覆盖后,需要调整类名,比如去掉前缀Sys
2)调整代码,不需要的都可以删掉;保险的可以注释掉
3)直到编译通过即可