# RuoYi-Vue-jdk21 **Repository Path**: sbitfk/RuoYi-Vue-jdk21 ## Basic Information - **Project Name**: RuoYi-Vue-jdk21 - **Description**: 计划 ruoyi-vue 升级到 jdk21,并重新整合回单体版本,引入 mybatis-plus,去掉 redis,引入 h2 数据库,sqlite 数据库。兼容 graalvm,支持打包成执行文件直接执行。用于单体小型网页的快速开发及快速部署 - **Primary Language**: Java - **License**: MIT - **Default Branch**: master - **Homepage**: http://ruoyi.vip - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 30631 - **Created**: 2024-03-01 - **Last Updated**: 2025-07-06 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README * 基于[ruoyi-vue(V3.8.7)](https://gitee.com/y_project/RuoYi-Vue)进行开发升级 * 计划升级到jdk21,springboot3.2,web开启虚拟线程支持 * 计划支持mybatis-plus * 计划升级去除redis回归单体程序 * 计划前后端合并回归单体应用模式,前端使用vue3框架 * 计划升级h2数据库及sqllite3数据库,快捷部署 * 计划支持graalvm,提供原生打包模式,打包成原生可执行文件快捷部署。 #### 2024-3-3 1. 升级jdk21 2. 升级springboot3.2.3 3. 升级mybatis-spring 3.0.3 4. 开启虚拟线程支持 5. 合并vue3前端文件夹 #### 2024-3-5 1. 引入ehcache3,改成本地缓存。因为jdk和springboot的升级,出现大坑,因为jaxb依赖的问题无法正确读取配置文件初始化ehcache缓存管理器,所以使用的是代码形式进行初始化,有需要进行缓存调整可对com.ruoyi.framework.config.Ehcache3Config进行调整,缓存使用的时jsr107标准类。 2. 因为jdk9后的模块化对反射的限制,导致引入ehcache3后,启动程序需要添加vm参数启动,否则会出现反射异常的问题:--add-opens java.base/java.lang=ALL-UNNAMED --add-opens java.base/java.lang.reflect=ALL-UNNAMED --add-opens java.base/java.lang.invoke=ALL-UNNAMED --add-opens java.base/java.math=ALL-UNNAMED --add-opens java.base/sun.net.util=ALL-UNNAMED --add-opens java.base/java.io=ALL-UNNAMED --add-opens java.base/java.net=ALL-UNNAMED --add-opens java.base/java.nio=ALL-UNNAMED --add-opens java.base/java.security=ALL-UNNAMED --add-opens java.base/java.text=ALL-UNNAMED --add-opens java.base/java.time=ALL-UNNAMED --add-opens java.base/java.util=ALL-UNNAMED 3. spring6.1去除了通过字节码读取方法参数名的方法,导致编写接口方法时,需要强制添加@requestparam指定参数名,否则将报异常提示无法匹配入参。目前可通过调整编译参数解决,但是不确定后续是否会持续造成影响,建议开发新接口时都添加注解。 #### 2024-3-16 1. 后端修改成支持前后端一体化部署 2. 调整vue2和vue3前端以适配一体化部署 3. vue2打包后,将dist里面的内容都移到resources/static文件夹下面(dist的static里面的内容则移出来static下)。vue3打包后将dist里面的内容复制到resources/static文件夹里面即可 4. 调整后前后端是否分离也都支持。 5. 如果要使用前后端分离部署,留意打包的时候修改.env.producation里面的配置 6. 引入mybatis-plus支持 #### 2024-3-17 1. 天坑1,mybatis-plus不支持native打包 2. 天坑2,mybatis和springboot3中native属性的支持不是很好,而且spring-native已经整合到springboot3里面,不再独立支持了。导致这个鬼springnative普通的仓库都找不到,需要到spring的独立仓库里面找,还不好下载,气爆了 3. 天坑3,mybatis有个springnative的独立项目,因为是依赖springboot2和springnative的,和spring3整合始终有问题,放弃了。 4. 认真想了想,其实不支持mybatis-plus就不太有改造的必要了,毕竟mybatis用起来真的不如jpa方便,特别是一些短平快的项目,下一步计划,直接改造成spring-data-jpa再做native兼容。