【Java】java | ruoyi-fast | ehcache改redis

一、说明

1、ruoyi-fast默认使用的ehcache存储登录信息
2、基于业务扩展,现在需要改成redis
3、ruoyi-fast是最早的版本,springboot + thymeleaf + mybatis + ehcache,现在ruoyi.vip找不到这个项目了
4、ruoyi.vip也给出了 文档,不过没有具体步骤;而且给出的是模块化的项目改造流程
5、需要改造的源码,并做调整即可
6、改造前,一定要先备份代码;很重要

二、准备工作

  1. 下载改造代码

https://pan.baidu.com/s/13JVC9jm-Dp9PfHdDDylLCQ 
1)密码: y9jt
2)说明: 云盘是所有组件的代码,只需要用到【集成redis实现集群会话管理】
  1. 改造代码示例图

  1. 映射关系确认

改造代码模块

ruoyi-fast

改造内容

备注

ruoyi-admin

SysUserOnlineController.java

1.替换类即可,不过命名需要改下;改造代码系统类为Sys开头,而fast没有Sys

ruoyi-common

类覆盖即可

  1. 需要手动处理依赖

ruoyi-framework

类覆盖即可

  1. 需要手动处理依赖

  1. 留意ShrioConfig的filterChainDefinitionMap放行配置,会全部替换;系统之前的配置会被覆盖,比如:/h5/**,就丢了;

  1. 改造前,代码打了git.tag,所以找回来了

ruoyi-system

一个配置类

一个字典类

  1. 需要手动处理依赖

三、操作

  1. 按文档,删除或者注释掉类

// 删除的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的依赖以及配置,但是存在业务依赖,又不想改造业务代码,就没删除;也就是可以不删除
  1. 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       # 连接池中的最小空闲连接
  1. 通过rebuild排查错误并处理

1)代码覆盖后,需要调整类名,比如去掉前缀Sys
2)调整代码,不需要的都可以删掉;保险的可以注释掉
3)直到编译通过即可

猜你喜欢

转载自blog.csdn.net/myloverisxin/article/details/129477499
今日推荐