👍JeeSite V5.14.0 发布,多项更新,架构、锁、幂等、4秒启动、AI
升级内容
Vue 分离端版本
- 升级 Vite 7.1.9、turbo 2.5.8、typescript 5.9.3、unocss 66.5.3 等依赖库
- 优化 Table useColumns 性能,减少 computed 计算
- 优化 Table 子表列设置 dictType 时,无需再调用 initDict 方法
- 优化 Upload 文件上传组件一些参数,默认从后台获取,无需前端配置
- 优化 Axios 当 errorMessageMode: 'none' 的时候,仍返回 response 数据
- 调整 Vite 插件 vite-plugin-monaco-editor 为 vite-plugin-monaco-editor-esm
- 修正 useTable 设置 showIndexColumn: false 时,表格右上角设置,存储的 序号 未生效问题
- 修正 Table 列 edit: true 单元格编辑为空的时候不显示编辑图标问题
- 修正 BPM 流程图 列表标题 前的竖线 定位到顶部的问题
后端 Spring Boot 3 依赖升级
- 升级 spring boot 3.5.6、mybatis-spring 3.0.5、snakeyaml 2.4、logstash-logback 8.1、logback 1.5.19
- 升级 commons-io 3.18、commons-io 2.20.0、twelvemonkeys 3.12.0、fury 0.10.3、bcprov 1.80
- 升级 minio 8.5.17、aliyun-sdk-oss 3.18.3、cos_api 5.6.255、qiniu-java-sdk 7.19.0、esdk-obs-java-bundle 3.25.7
- 升级 swagger3 2.2.36、springdoc 2.8.13、jodconverter 4.4.9
- 升级 docker 插件,支持 buildx 多架构环境部署
后端架构优化增强
- 新增 Dao 分组聚合查询 sqlMap.getGroup().setGroupBy(分组字段).setHaving(分组条件)
- 新增 Dao toOrderSql() 和 toGroupSql() 方法,当为空的时候不输出 ORDER BY 和 GROUP BY 关键字
- 新增 CacheUtils 工具 computeIfAbsent 方法,当值不存在时,调用第二个参数
- 新增 SpringUtils 工具 getBeanIfAvailable 方法,如果可用则返回Bean,不抛出异常
- 新增 J2Cache 接口 putIfAbsent 方法,当 Key 不存在时才设置缓存数据
- 新增 logger-default.xml 日志默认配置,可自定义覆盖默认参数
- 新增 mybatis-default.xml MyBatis默认配置,可自定义参数
- 新增 beetl-default.properties Beetl模版默认配置,可自定义覆盖默认参数
- 新增 logger-default-cloud.xml 微服务日志默认配置,可自定义覆盖默认参数
- 新增 -Dspring.config.additional-location 方式读取配置文件
- 新增 LockManager 锁管理器,支持本地锁和分布式锁,当开启集群时,自动使用分布式锁
- 优化 Idempotent 幂等注解 增加 sessionId(是否为会话级别的幂等验证)和 cacheName(可以自定义缓存名)参数
- 优化 Lang Zone 语言和时区参数,当指定的时候再进行更改默认,否则读取操作系统语言和时区
- 优化 startup.bat(sh) 启动脚本,支持接受参数,如 --spring.config.additional-location=app.yml
- 优化 application.yml 配置文件的工具提示,让 jdbc 多数据源配置也有工具提示。
- 优化 /error/*,如 500、400、403,当 web-mini 无视图的时候,返回 errorCode 信息
- 优化 错误提示页面视图(/error/500、400、403.html)增加 刷新页面 按钮,方便重载页面
- 优化 Web 服务启动速度,大幅度提升(社区版测试 Apple M2 + IDEA 平均约 4 秒内完成启动)👍🏻
- 优化 ThreadUtils.sleep 增加 ThreadUtils.currentThread().interrupt();
- 优化 StringUtils 驼峰命名法工具优化,使用下划线开头的时候忽略它,并更新一些标为弃用的方法
- 调整 Caffeine 缓存超期时间,将 惰性清理 改为 主动清理,当超期时间较短的时候可能会时钟错乱
- 调整 logger-core.xml、logback-spring.xml 日志配置文件,优化日志输出
- 调整 移除 配置参数 mvc.pathmatch.matching-strategy: ANT_PATH_MATCHER
- 调整 删除或保留 ueditor.json 配置文件,删除后将使用默认 ueditor-core.json
- 调整 默认加载 mybatis-default.xml,可通过 mybatis.configLocation 参数指定 mybatis-config.xml
- 调整 默认 application-prod.yml 增加 mybatis.mapper.refresh.enabled: false 参数
- 调整 默认参数 spring.main.lazy-initialization 为 true,支持懒加载启动
- 调整 Bean 注入方式,将默认的字符注入更改为构造注入并完善方法注释
- 调整 AuthorizingRealm 登录成功和退出成功接口,增加返回值
- 调整 web.swagger.enabled 参数为 springdoc.api-docs.enabled 和 springdoc.swagger-ui.enabled
- 调整 移动 root 目录中的内容,到根目录下
后端功能优化增强
- 新增 Job 调度目标串的 jobContext 参数,可获取 JobExecutionContext、任务中断状态、中断回调等
- 新增 Job 当暂停或运行一次的时候,会发起中断任务通知,以便任务做出相应处理;优化监听日志输出
- 新增 Excel 导入导出实体的单元测试类 ExcelImportEntityTest、ExcelExportEntityTest
- 优化 UserUtils 工具 get、getByLoginCode 方法的缓存锁,升级为行级锁,提高性能
- 优化 Login 登录 subject.isPermitted("user") 调用2次,优化为1次,以及登录逻辑,性能提升
- 优化 Login 当关闭多地登录且被挤下时,给予用户提示,而不是直接跳转登录页,优化体验
- 优化 Login 多地登录逻辑为登录后校验,防止用户权限过期后再次调用,导致账号异常掉线
- 优化 DAO 字段权限排除方法 setExcludeAttrNames,支持设置
*排除所有列; - 优化 web-mini 迷你服务,去掉一些依赖,缩减打包大小,并有多项改进
- 优化 sysCache 系统缓存,默认对系统性的缓存,延长存活时间
- 优化 deviceType 登录设备合法性验证注释提示(根据业务需要自行添加)
- 优化 CMS 内容管理,给 Category 栏目添加缓存,性能提升
- 优化 Application 启动类完成后输出的提示信息
AI能力增强
- 升级 spring ai 1.0.3
- 重构 jeesite-ai 代码目录,新增 parent-ai,重命名 cms-ai 为 ai-cms
- 新增 jeesite-ai-tools 工具调用模块,支持会话保持控制权限,如:当前用户只能查询有权限的数据
- 新增 AI MCP 服务端和客户端调用,展示远程工具调用示例,如:查询某某用户信息
- 优化 AI 大模型返回异常输出消息,将消息返回给客户端(仅用于调试,可关闭返回)
- 优化 支持最新版本 ollama 本地模型的 thinking 深度思考信息输出
- 调整 AI 工具调用参数,重命名 tool-calls 为 tools.enabled
微服务版
- 优化 FeignClient 生成的 Bean 名称,直接使用 类名 小写开头,方便业务根据名称注入
- 调整 默认关闭 sentinel,可根据 docs.jeesite.com 文档介绍开启
问题修复
- 修正 CMS 当栏目为显示第一篇文章的时候,点击保存,不关闭窗口
- 修正 ExcelField 声明在 get 方法上时提示 wrong number of arguments 问题
- 修正 阿里云对象存储,私有地址生成可能会提示 Can not override response header on content-type
- 修正 Beetl 全栈版页面小窗口下,侧边栏未完全展开问题
升级方法
- 修改所有
pom.xml文件中的jeesite-parent版本号为5.14.0.springboot3-SNAPSHOT - Spring Boot 2 版本,修改所有
pom.xml文件中的jeesite-parent版本号为5.14.0-SNAPSHOT - 如果您修改了
parent、common、modules等项目源码,请与git上的代码进行同步 - 升级了众多依赖,一般都是向下兼容,根据具体情况调整
- 更新 com.jeesite.common.shiro 包、LoginController 类
- 更新 jeesite-core.yml、logger-core.xml、logback-*.xml 配置文件
- 如果修改过 mybatis-config.xml 文件,请修改 mybatis.configLocation 参数
- 删除或保留 beetl.properties 默认配置,删除后将使用默认 beetl-default.properties
- 删除或保留 ueditor.json 配置文件,删除后将使用默认 ueditor-core.json
- 因为该版本将字段注入更改为构造注入,如有提示构造错误的,请进行按提示修正,现有业务可继续使用字段注入方式
- 移除了 mvc.pathmatch.matching-strategy 参数,使用 Spring 默认,如果您用了复杂请求 URL,可不做调整
- 默认开启 lazy-initialization 参数,如 InitializingBean、@PostConstruct 可能需要 @Lazy(false)
- AI 人工智能模块目录重构,根据实际情况调整或选择是否更新,或保持您的业务现状
- 如果您是跨版本升级,请注意每一个版本的升级方法,业务上有调整的地方进行修改
- 执行
/bin/package.bat(sh)打包脚本,强制更新依赖。
Vue 分离端
- 请与
jeesite-vue代码仓库源码进行同步,合并代码,手动解决冲突代码 - 如果您是跨版本升级,请注意每一个版本的升级方法,业务上有调整的地方进行修改
- 匹配后端版本为
JeeSite v5.14.0 springboot3 或 springboot2
相关链接
在线演示
- JeeSite Vue 版演示地址:https://vue.jeesite.com
- JeeSite 全栈版演示地址:https://demo.jeesite.com
源码下载
- JeeSite 源码下载地址:https://gitee.com/thinkgem/jeesite5
- JeeSite Vue 前端源码:https://gitee.com/thinkgem/jeesite-vue
- JeeSite Cloud 微服务:https://gitee.com/thinkgem/jeesite-cloud
- JeeSite 跨平台手机端:https://gitee.com/thinkgem/jeesite-uniapp
- JeeSite 客户端安装程序:https://gitee.com/thinkgem/jeesite-client
快速了解
- 平台简介:https://jeesite.com/docs/overview/
- 架构特点:https://jeesite.com/docs/feature/
- 内置功能:https://jeesite.com/docs/function/
- 目录结构:https://jeesite.com/docs/catalog/
- 参数配置:https://jeesite.com/docs/config/
- 开发规范:https://jeesite.com/docs/standard/
- 数表设计:https://jeesite.com/docs/treetable/
更多功能
-
AI、CMS、RAG、Tool、MCP 人工智能助手:https://jeesite.com/docs/ai-cms
-
BPM 业务流程引擎(Flowable):http://jeesite.com/docs/bpm/
-
CMS 多站点内容管理模块:https://jeesite.com/docs/cms/
-
SaaS 多租户架构:https://jeesite.com/docs/saas-corp-use/
-
读写分离分片分表:https://jeesite.com/docs/sharding/
-
Spring监控系统:https://jeesite.com/docs/webadmin/
-
分布式跨应用事务:https://jeesite.com/docs/seata/
-
MybatisPlus: https://gitee.com/thinkgem/jeesite-mybatisplus