升级3.9.3 架构升级springboot4

This commit is contained in:
JEECG 2026-07-07 14:27:09 +08:00
parent 71008562db
commit 5da2cd0ecf
42 changed files with 350 additions and 63 deletions

View File

@ -6,7 +6,7 @@ This file provides guidance to Claude Code (claude.ai/code) when working with co
## Project Overview
JeecgBoot 3.9.2 — a Java low-code development platform built on **Spring Boot 3.5.5**, **Java 17** (also supports 21, 24). It runs as a monolithic app by default, with an optional Spring Cloud microservices mode. Uses `jakarta` namespace (not `javax`) throughout.
JeecgBoot 3.9.3 — a Java low-code development platform built on **Spring Boot 3.5.5**, **Java 17** (also supports 21, 24). It runs as a monolithic app by default, with an optional Spring Cloud microservices mode. Uses `jakarta` namespace (not `javax`) throughout.
## Build & Run Commands

View File

@ -1,12 +1,12 @@
JeecgBoot 低代码开发平台
===============
当前最新版本: 3.9.22026-04-30
当前最新版本: 3.9.32026-07-07
[![AUR](https://img.shields.io/badge/license-Apache%20License%202.0-blue.svg)](https://github.com/zhangdaiscott/jeecg-boot/blob/master/LICENSE)
[![](https://img.shields.io/badge/Author-北京国炬软件-orange.svg)](http://jeecg.com/aboutusIndex)
[![](https://img.shields.io/badge/version-3.9.2-brightgreen.svg)](https://github.com/zhangdaiscott/jeecg-boot)
[![](https://img.shields.io/badge/version-3.9.3-brightgreen.svg)](https://github.com/zhangdaiscott/jeecg-boot)
[![GitHub stars](https://img.shields.io/github/stars/zhangdaiscott/jeecg-boot.svg?style=social&label=Stars)](https://github.com/zhangdaiscott/jeecg-boot)
[![GitHub forks](https://img.shields.io/github/forks/zhangdaiscott/jeecg-boot.svg?style=social&label=Fork)](https://github.com/zhangdaiscott/jeecg-boot)

287
jeecg-boot/UPGRADE-3.9.3.md Normal file
View File

@ -0,0 +1,287 @@
# JeecgBoot 3.9.3 升级日志
> 发布日期2026-07-07
## 概述
本次升级聚焦于基础设施现代化,将核心框架从 Spring Boot 3 迁移至 Spring Boot 4同步升级 Spring Cloud、XXL-JOB、Nacos、Shiro、Sentinel 等关键组件,全面提升平台的技术栈基线。
---
## 一、Spring Boot 3 → 4 升级3.5.5 → 4.1.0
### 1.1 框架版本
| 组件 | 旧版本 | 新版本 |
|------|--------|--------|
| Spring Boot | 3.5.5 | **4.1.0** |
| Spring Framework | 6.x | **7.0** |
| Spring Cloud | 2024.x | **2025.1.2** |
| Spring Cloud Alibaba | 2024.x | **2025.1.0.0** |
### 1.2 兼容性修复
**Jackson 3 迁移**
Spring Boot 4 使用 Jackson 3`tools.jackson`),替代 Jackson 2`com.fasterxml.jackson`)。移除 `jackson-module-kotlin`Jackson 2 专有,与 Jackson 3 不兼容,会导致 `ClassCastException`)。
```xml
<!-- jeecg-boot-base-core/pom.xml -->
<!-- 注释掉 jackson-module-kotlinJackson 2 与 Jackson 3 不兼容 -->
<!-- <dependency>
<groupId>com.fasterxml.jackson.module</groupId>
<artifactId>jackson-module-kotlin</artifactId>
</dependency> -->
```
**UriComponentsBuilder API 变更**
Spring Framework 7 移除了 `UriComponentsBuilder.fromHttpUrl()`,改用 `fromUriString()`
```java
// OpenApiController.java
// 旧: UriComponentsBuilder.fromHttpUrl(url)
// 新: UriComponentsBuilder.fromUriString(url)
UriComponentsBuilder builder = UriComponentsBuilder.fromUriString(url);
```
**RedisMessageListenerContainer Bean 冲突**
Spring Boot 4.1 自动创建 `redisMessageListenerContainer`,与 JeecgBoot 自定义的 `redisContainer` 冲突,`DragWebSocket` 注入时出现二义性。
修复方案:新增 `RedisContainerPrimaryConfig`,通过 `BeanDefinitionRegistryPostProcessor``redisContainer` 标记为 `@Primary`
```java
@Component
public class RedisContainerPrimaryConfig implements BeanDefinitionRegistryPostProcessor {
@Override
public void postProcessBeanDefinitionRegistry(BeanDefinitionRegistry registry) {
if (registry.containsBeanDefinition("redisContainer")) {
registry.getBeanDefinition("redisContainer").setPrimary(true);
}
}
}
```
### 1.3 其他适配
- Shiro 配置适配 Spring Framework 7 API 变更
- Druid 配置适配新版本 Spring Boot 自动装配
- Swagger3 / Knife4j 配置适配 Spring Boot 4
- 单元测试框架适配
---
## 二、XXL-JOB 2.4.1 → 3.4.2 升级
### 2.1 升级内容
| 组件 | 旧版本 | 新版本 | 说明 |
|------|--------|--------|------|
| xxl-job-core | 2.4.1 | **3.4.2** | 核心调度引擎 |
| xxl-sso-core | — | **2.4.0** | 新增3.x 管理平台登录认证 |
| xxl-tool | — | **2.5.0** | 工具库 |
| mybatis-spring-boot-starter | 3.0.3 | **4.0.1** | MyBatis 适配 Spring Boot 4 |
### 2.2 主要变更
**源码结构重组**
- 管理平台 controller 从 `com.xxl.job.admin.controller` 迁移到 `com.xxl.job.admin.business.controller`
- 调度器从 `com.xxl.job.admin.core.scheduler` 迁移到 `com.xxl.job.admin.business.scheduler`
- model/mapper 从 `core` 迁移到 `business`
**API 迁移ReturnT → Response**
XXL-JOB 3.x 全面使用 `Response<T>` 替代 `ReturnT<T>`
```java
// 旧
ReturnT<String> execute(String param) { return ReturnT.SUCCESS; }
// 新
Response<String> execute(String param) { return Response.SUCCESS; }
```
**认证方式变更**
- 2.x数据库 `xxl_job_user` 表 MD5 密码
- 3.x`xxl-sso` 单点登录框架SHA-256 密码,默认账号 `admin/123456`
**执行器注册机制**
- 3.x 引入了新的执行器注册和发现机制
- `JeecgXxlJobSpringExecutor` 做了适配以支持 `@Bean` 方法上的 `@XxlJob` 注解扫描
**配置文件格式**
- application.yml → application.properties解决 `xxl-sso.token.key` 等带点号/横线的 key 解析问题)
**数据库**
- 新数据库名 `xxl-job3`,表结构变化需重新导入 `db/tables_xxl_job.sql`
### 2.3 保留的 JeecgBoot 定制
- `XxlJobAdminApplication` 启动日志
- `jeecg.xxljob` 配置前缀支持
- 邮件告警配置集成 JeecgBoot 邮件配置
- Nacos 服务发现适配
---
## 三、Nacos 2.3.2 → 3.2.2 升级
### 3.1 升级策略
使用重新打包的 Nacos 3.2.2,解决官方 Nacos 依赖兼容性问题。
**去掉 pom 中 springboot3 命名空间**Nacos 模块不再继承 `jeecg-boot-parent``org.jeecgframework.boot3`),改为直接以 `spring-boot-starter-parent 4.1.0` 为 parent退出主项目的 springboot3 版本体系,独立管理依赖。
### 3.2 启动模式
从单阶段启动改为**三阶段启动**
```java
// 阶段1: Core Context无 Web
NacosServerBasicApplication → coreContext
// 阶段2: Server Web Context
NacosServerWebApplication → parent(coreContext)
// 阶段3: Console Context
NacosConsole → parent(coreContext)
```
启动类:`JeecgNacosApplication`
### 3.3 依赖管理
**Hessian 版本统一**
Nacos 3.x 多个依赖引入不同版本 Hessian`com.caucho.hessian``com.alipay.sofa.hessian`),存在 API 冲突。排除所有传递 Hessian统一使用 `com.caucho:hessian:4.0.66`
```xml
<!-- Nacos Server、Console、JRaft 均需排除 hessian 传递依赖 -->
```
### 3.4 配置变更
- `application.yml``application.properties`
- 数据库名:`nacos`(新库,建表脚本 `db/tables_nacos.sql`
- 控制台端口:`18080`,上下文路径:`/nacos`
- 部署模式:`merged`(三合一)
- 关闭 AI 扩展和广告开关
- 新增 `logback-spring.xml`
- **删除 springboot3/springboot2 命名空间切换规则**:不再支持 springboot2新库默认只提供 springboot3/4 的配置
### 3.5 JVM 参数
```bash
--add-opens java.base/java.lang=ALL-UNNAMED
--add-opens java.base/java.lang.reflect=ALL-UNNAMED
--add-opens java.base/java.util=ALL-UNNAMED
--add-opens java.base/java.io=ALL-UNNAMED
```
---
## 四、其他组件升级
| 组件 | 旧版本 | 新版本 | 说明 |
|------|--------|--------|------|
| MyBatis-Plus | 3.5.14 | **3.5.16** | ORM 框架 |
| Druid | — | **1.2.28** | 数据库连接池 |
| JSqlParser | — | **5.0** | SQL 解析器 |
| Shiro | < 2.0 | **3.0.0** | 安全框架 |
| shiro-redis | — | **4.1.0** | Shiro Redis 支持(切换到 `io.github.weir2010` |
| Sentinel Dashboard | 1.8.3 | **1.8.10** | 流量控制(支持 JDK17 |
### 4.1 新增 jeecg-boot-starter-sentinel按需引入
> ⚠️ **不兼容变更**:旧版 Sentinel 功能内置在 starter-cloud 中自动生效,新版改为**按需引入**,必须显式添加 `jeecg-boot-starter-sentinel` 依赖后才能使用 Sentinel 限流熔断功能。
本次封装了独立的 **jeecg-boot-starter-sentinel** 模块,将 Sentinel 限流降级能力抽离为公共 starter`starter-cloud` 解耦。
**模块结构:**
```
jeecg-boot-starter-sentinel/
├── JeecgSentinelAutoConfiguration.java # 自动配置(注册 Bean
├── handler/
│ └── JeecgUrlBlockHandler.java # 限流降级处理器HTTP 429
├── parser/
│ └── JeecgHeaderRequestOriginParser.java # 请求来源解析器IP/参数)
└── feign/
├── JeecgSentinelFeign.java # 自定义 Feign Builder
└── JeecgSentinelInvocationHandler.java # Feign 调用拦截处理器
```
**功能要点:**
- Feign 熔断:支持 `@FeignClient``fallback`/`fallbackFactory` 自动注入
- 限流降级响应:被 Sentinel 限流时返回 HTTP 429 + 统一 JSON
- 请求来源解析:基于请求参数 `origin``X-Forwarded-For`
- 与 `starter-cloud` 解耦,按需引入
```xml
<dependency>
<groupId>org.jeecgframework.boot3</groupId>
<artifactId>jeecg-boot-starter-sentinel</artifactId>
</dependency>
```
---
## 五、数据库变更
| 数据库 | 说明 |
|--------|------|
| `xxl-job3` | XXL-JOB 3.4.2 新库,需导入 `db/tables_xxl_job.sql` |
| `nacos` | Nacos 3.2.2 新库,建表脚本 `db/tables_nacos.sql`(附 Nacos 3.x `conf/mysql-schema.sql` |
> ⚠️ Nacos 3.x 不会自动建表,需要手动执行建表脚本。
---
## 六、⚠️ 不兼容升级提醒
**Nacos 和 XXL-JOB 需要重新初始化数据库!**
- Nacos 2.x → 3.x、XXL-JOB 2.x → 3.x 均为**大版本升级**,表结构不兼容,需用新库重新建表
- **升级前请备份老库**然后将老库中的配置Nacos 配置项、XXL-JOB 任务等)手工迁移到新库
- 建表脚本:
- Nacos`db/tables_nacos.sql`
- XXL-JOB`db/tables_xxl_job.sql`
**访问地址变更**
| 服务 | 旧地址 | 新地址 |
|------|--------|--------|
| Nacos 控制台 | `http://localhost:8848/nacos` | `http://localhost:18080/nacos` |
| XXL-JOB 管理 | `http://localhost:9080/xxl-job-admin` | `http://localhost:9080/` |
> Nacos 端口从 8848 改为 18080XXL-JOB 去掉了 `/xxl-job-admin` 项目后缀。
---
## 七、升级注意事项
1. **Java 版本**:仍需 Java 17+Spring Boot 4 同时支持 Java 17/21/24
2. **XXL-JOB 执行器**:确保 `jeecg-boot-starter-job` 模块排除旧版 `xxl-job-core`,统一使用 3.4.2
3. **Nacos**:初次启动前需手动导入数据库表,三阶段启动完成后访问 `http://localhost:18080/nacos`
4. **Spring Boot 4**:注意 `jakarta` 命名空间无变化3.x 已采用Jackson 3 替代 Jackson 2
5. **线上部署**:微服务模块的 Dockerfile 中 jar 包名已更新为 `3.9.3`
6. **IDE 编码**:项目使用 Tab 缩进properties/YAML 文件使用 UTF-8 编码
---
## 八、版本号对照
```
JeecgBoot: 3.9.2 → 3.9.3
Spring Boot: 3.5.5 → 4.1.0
Spring Cloud: 2024.x → 2025.1.2
SC Alibaba: 2024.x → 2025.1.0.0
XXL-JOB: 2.4.1 → 3.4.2
Nacos Server: 2.3.2 → 3.2.2
Shiro: <2.0 3.0.0
shiro-redis: — → 4.1.0
MyBatis-Plus: 3.5.14 → 3.5.16
MyBatis-Starter: 3.0.3 → 4.0.1
Druid: — → 1.2.28
JSqlParser: — → 5.0
Sentinel: 1.8.3 → 1.8.10
```

View File

@ -4,7 +4,7 @@
<parent>
<groupId>org.jeecgframework.boot3</groupId>
<artifactId>jeecg-boot-parent</artifactId>
<version>3.9.2</version>
<version>3.9.3</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>jeecg-boot-base-core</artifactId>

View File

@ -136,7 +136,7 @@ public class Swagger3Config implements WebMvcConfigurer {
return new OpenAPI()
.info(new Info()
.title("JeecgBoot 后台服务API接口文档")
.version("3.9.2")
.version("3.9.3")
.contact(new Contact().name("北京国炬信息技术有限公司").url("www.jeccg.com").email("jeecgos@163.com"))
.description("后台API接口")
.termsOfService("NO terms of service")

View File

@ -6,7 +6,7 @@
<parent>
<groupId>org.jeecgframework.boot3</groupId>
<artifactId>jeecg-boot-module</artifactId>
<version>3.9.2</version>
<version>3.9.3</version>
</parent>
<artifactId>jeecg-boot-module-airag</artifactId>

View File

@ -5,7 +5,7 @@
<parent>
<artifactId>jeecg-boot-module</artifactId>
<groupId>org.jeecgframework.boot3</groupId>
<version>3.9.2</version>
<version>3.9.3</version>
</parent>
<modelVersion>4.0.0</modelVersion>

View File

@ -5,7 +5,7 @@
<parent>
<artifactId>jeecg-boot-parent</artifactId>
<groupId>org.jeecgframework.boot3</groupId>
<version>3.9.2</version>
<version>3.9.3</version>
</parent>
<modelVersion>4.0.0</modelVersion>

View File

@ -5,7 +5,7 @@
<parent>
<artifactId>jeecg-system-api</artifactId>
<groupId>org.jeecgframework.boot3</groupId>
<version>3.9.2</version>
<version>3.9.3</version>
</parent>
<modelVersion>4.0.0</modelVersion>

View File

@ -5,7 +5,7 @@
<parent>
<artifactId>jeecg-system-api</artifactId>
<groupId>org.jeecgframework.boot3</groupId>
<version>3.9.2</version>
<version>3.9.3</version>
</parent>
<modelVersion>4.0.0</modelVersion>

View File

@ -5,7 +5,7 @@
<parent>
<artifactId>jeecg-module-system</artifactId>
<groupId>org.jeecgframework.boot3</groupId>
<version>3.9.2</version>
<version>3.9.3</version>
</parent>
<modelVersion>4.0.0</modelVersion>

View File

@ -4,7 +4,7 @@
<parent>
<groupId>org.jeecgframework.boot3</groupId>
<artifactId>jeecg-module-system</artifactId>
<version>3.9.2</version>
<version>3.9.3</version>
</parent>
<modelVersion>4.0.0</modelVersion>

View File

@ -454,7 +454,7 @@ public class OpenApiController extends JeecgController<OpenApi, OpenApiService>
SwaggerInfo info = new SwaggerInfo();
info.setDescription("OpenAPI 接口列表");
info.setVersion("3.9.2");
info.setVersion("3.9.3");
info.setTitle("OpenAPI 接口列表");
info.setTermsOfService("https://jeecg.com");

View File

@ -21,9 +21,9 @@ WORKDIR /jeecg-boot
EXPOSE 8080
#ADD ./src/main/resources/jeecg ./config/jeecg
ADD ./target/jeecg-system-start-3.9.2.jar ./
ADD ./target/jeecg-system-start-3.9.3.jar ./
RUN mkdir -p /jeecg-boot/config
# 【PR#9345】编码已通过JAVA_TOOL_OPTIONS设置CMD改用&&和exec
CMD sleep 60 && exec java -Djava.security.egd=file:/dev/./urandom -jar jeecg-system-start-3.9.2.jar
CMD sleep 60 && exec java -Djava.security.egd=file:/dev/./urandom -jar jeecg-system-start-3.9.3.jar

View File

@ -9,7 +9,7 @@ ${AnsiColor.BRIGHT_BLUE}
${AnsiColor.BRIGHT_GREEN}
Jeecg Boot Version: 3.9.2
Jeecg Boot Version: 3.9.3
Spring Boot Version: ${spring-boot.version}${spring-boot.formatted-version}
产品官网: www.jeecg.com
版权所属: 北京国炬信息技术有限公司

View File

@ -5,7 +5,7 @@
<parent>
<artifactId>jeecg-boot-parent</artifactId>
<groupId>org.jeecgframework.boot3</groupId>
<version>3.9.2</version>
<version>3.9.3</version>
</parent>
<modelVersion>4.0.0</modelVersion>

View File

@ -20,6 +20,6 @@ WORKDIR /jeecg-cloud-gateway
EXPOSE 9999
ADD ./target/jeecg-cloud-gateway-3.9.2.jar ./
ADD ./target/jeecg-cloud-gateway-3.9.3.jar ./
CMD sleep 100 && exec java -Djava.security.egd=file:/dev/./urandom -jar jeecg-cloud-gateway-3.9.2.jar
CMD sleep 100 && exec java -Djava.security.egd=file:/dev/./urandom -jar jeecg-cloud-gateway-3.9.3.jar

View File

@ -5,7 +5,7 @@
<parent>
<artifactId>jeecg-server-cloud</artifactId>
<groupId>org.jeecgframework.boot3</groupId>
<version>3.9.2</version>
<version>3.9.3</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>jeecg-cloud-gateway</artifactId>

View File

@ -20,6 +20,6 @@ WORKDIR /jeecg-cloud-nacos
EXPOSE 8848
ADD ./target/jeecg-cloud-nacos-3.9.2.jar ./
ADD ./target/jeecg-cloud-nacos-3.9.3.jar ./
CMD sleep 30 && exec java -Djava.security.egd=file:/dev/./urandom -jar jeecg-cloud-nacos-3.9.2.jar
CMD sleep 30 && exec java -Djava.security.egd=file:/dev/./urandom -jar jeecg-cloud-nacos-3.9.3.jar

View File

@ -5,7 +5,7 @@
<artifactId>jeecg-cloud-nacos</artifactId>
<name>jeecg-cloud-nacos</name>
<description>nacos启动模块</description>
<version>3.9.2</version>
<version>3.9.3</version>
<parent>
<groupId>org.springframework.boot</groupId>

View File

@ -20,6 +20,6 @@ WORKDIR /jeecg-demo-cloud
EXPOSE 7002
ADD ./target/jeecg-demo-cloud-start-3.9.2.jar ./
ADD ./target/jeecg-demo-cloud-start-3.9.3.jar ./
CMD sleep 60 && exec java -Djava.security.egd=file:/dev/./urandom -jar jeecg-demo-cloud-start-3.9.2.jar
CMD sleep 60 && exec java -Djava.security.egd=file:/dev/./urandom -jar jeecg-demo-cloud-start-3.9.3.jar

View File

@ -5,7 +5,7 @@
<parent>
<artifactId>jeecg-server-cloud</artifactId>
<groupId>org.jeecgframework.boot3</groupId>
<version>3.9.2</version>
<version>3.9.3</version>
</parent>
<modelVersion>4.0.0</modelVersion>

View File

@ -20,6 +20,6 @@ WORKDIR /jeecg-system-cloud
EXPOSE 7001
ADD ./target/jeecg-system-cloud-start-3.9.2.jar ./
ADD ./target/jeecg-system-cloud-start-3.9.3.jar ./
CMD sleep 60 && exec java -Djava.security.egd=file:/dev/./urandom -jar jeecg-system-cloud-start-3.9.2.jar
CMD sleep 60 && exec java -Djava.security.egd=file:/dev/./urandom -jar jeecg-system-cloud-start-3.9.3.jar

View File

@ -5,7 +5,7 @@
<parent>
<artifactId>jeecg-server-cloud</artifactId>
<groupId>org.jeecgframework.boot3</groupId>
<version>3.9.2</version>
<version>3.9.3</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>jeecg-system-cloud-start</artifactId>
@ -42,24 +42,18 @@
<artifactId>jeecg-boot-starter-job</artifactId>
</dependency>
<!-- feign 熔断限流、分布式锁、xxljob示例
<!-- feign 熔断限流、分布式锁、xxljob示例 -->
<dependency>
<groupId>org.jeecgframework.boot3</groupId>
<artifactId>jeecg-cloud-test-more</artifactId>
<version>${jeecgboot.version}</version>
</dependency>-->
</dependency>
<!-- rabbitmq例子
<dependency>
<groupId>org.jeecgframework.boot3</groupId>
<artifactId>jeecg-cloud-test-rabbitmq</artifactId>
<version>${jeecgboot.version}</version>
</dependency>-->
<!-- rocketmq例子-->
<!--<dependency>
<groupId>org.jeecgframework.boot3</groupId>
<artifactId>jeecg-cloud-test-rocketmq</artifactId>
<version>${jeecgboot.version}</version>
</dependency>-->
<!-- 分布式事务例子
<dependency>
<groupId>org.jeecgframework.boot3</groupId>

View File

@ -5,7 +5,7 @@
<parent>
<artifactId>jeecg-visual</artifactId>
<groupId>org.jeecgframework.boot3</groupId>
<version>3.9.2</version>
<version>3.9.3</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>jeecg-cloud-monitor</artifactId>

View File

@ -20,6 +20,6 @@ WORKDIR /jeecg-cloud-sentinel
EXPOSE 8848
ADD ./target/jeecg-cloud-sentinel-3.9.2.jar ./
ADD ./target/jeecg-cloud-sentinel-3.9.3.jar ./
CMD sleep 5 && exec java -Djava.security.egd=file:/dev/./urandom -jar jeecg-cloud-sentinel-3.9.2.jar
CMD sleep 5 && exec java -Djava.security.egd=file:/dev/./urandom -jar jeecg-cloud-sentinel-3.9.3.jar

View File

@ -11,7 +11,7 @@
<artifactId>jeecg-cloud-sentinel</artifactId>
<name>jeecg-cloud-sentinel</name>
<description>Sentinel Dashboard 启动模块</description>
<version>3.9.2</version>
<version>3.9.3</version>
<dependencies>
<dependency>

View File

@ -5,7 +5,7 @@
<parent>
<artifactId>jeecg-cloud-test</artifactId>
<groupId>org.jeecgframework.boot3</groupId>
<version>3.9.2</version>
<version>3.9.3</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<description>消息队列测试模块</description>

View File

@ -5,7 +5,7 @@
<parent>
<groupId>org.jeecgframework.boot3</groupId>
<artifactId>jeecg-cloud-test</artifactId>
<version>3.9.2</version>
<version>3.9.3</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<description>消息队列测试模块</description>

View File

@ -5,7 +5,7 @@
<parent>
<artifactId>jeecg-cloud-test-seata</artifactId>
<groupId>org.jeecgframework.boot3</groupId>
<version>3.9.2</version>
<version>3.9.3</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<description>分布式事务测试模块</description>

View File

@ -5,7 +5,7 @@
<parent>
<artifactId>jeecg-cloud-test-seata</artifactId>
<groupId>org.jeecgframework.boot3</groupId>
<version>3.9.2</version>
<version>3.9.3</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<description>分布式事务测试模块</description>

View File

@ -5,7 +5,7 @@
<parent>
<artifactId>jeecg-cloud-test-seata</artifactId>
<groupId>org.jeecgframework.boot3</groupId>
<version>3.9.2</version>
<version>3.9.3</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<description>分布式事务测试模块</description>

View File

@ -5,7 +5,7 @@
<parent>
<artifactId>jeecg-cloud-test</artifactId>
<groupId>org.jeecgframework.boot3</groupId>
<version>3.9.2</version>
<version>3.9.3</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>jeecg-cloud-test-seata</artifactId>

View File

@ -5,7 +5,7 @@
<parent>
<artifactId>jeecg-cloud-test</artifactId>
<groupId>org.jeecgframework.boot3</groupId>
<version>3.9.2</version>
<version>3.9.3</version>
</parent>
<modelVersion>4.0.0</modelVersion>

View File

@ -5,7 +5,7 @@
<parent>
<artifactId>jeecg-visual</artifactId>
<groupId>org.jeecgframework.boot3</groupId>
<version>3.9.2</version>
<version>3.9.3</version>
</parent>
<modelVersion>4.0.0</modelVersion>

View File

@ -20,7 +20,7 @@ WORKDIR /jeecg-cloud-xxljob
EXPOSE 9080
ADD ./target/jeecg-cloud-xxljob-3.9.2.jar ./
ADD ./target/jeecg-cloud-xxljob-3.9.3.jar ./
CMD exec java -Djava.security.egd=file:/dev/./urandom -jar jeecg-cloud-xxljob-3.9.2.jar
CMD exec java -Djava.security.egd=file:/dev/./urandom -jar jeecg-cloud-xxljob-3.9.3.jar

View File

@ -4,7 +4,7 @@
<parent>
<artifactId>jeecg-visual</artifactId>
<groupId>org.jeecgframework.boot3</groupId>
<version>3.9.2</version>
<version>3.9.3</version>
</parent>
<packaging>jar</packaging>
<artifactId>jeecg-cloud-xxljob</artifactId>

View File

@ -5,7 +5,7 @@
<parent>
<artifactId>jeecg-server-cloud</artifactId>
<groupId>org.jeecgframework.boot3</groupId>
<version>3.9.2</version>
<version>3.9.3</version>
</parent>
<modelVersion>4.0.0</modelVersion>

View File

@ -5,7 +5,7 @@
<parent>
<artifactId>jeecg-boot-parent</artifactId>
<groupId>org.jeecgframework.boot3</groupId>
<version>3.9.2</version>
<version>3.9.3</version>
</parent>
<modelVersion>4.0.0</modelVersion>

View File

@ -2,7 +2,7 @@
<modelVersion>4.0.0</modelVersion>
<groupId>org.jeecgframework.boot3</groupId>
<artifactId>jeecg-boot-parent</artifactId>
<version>3.9.2</version>
<version>3.9.3</version>
<packaging>pom</packaging>
<name>JEECG BOOT ${project.version}</name>
@ -28,7 +28,7 @@
</parent>
<properties>
<jeecgboot.version>3.9.2</jeecgboot.version>
<jeecgboot.version>3.9.3</jeecgboot.version>
<!-- JDK版本支持17、21、24、25 -->
<java.version>17</java.version>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
@ -57,7 +57,7 @@
<!-- 积木报表-->
<jimureport-spring-boot-starter.version>2.5.0</jimureport-spring-boot-starter.version>
<jimubi-spring-boot-starter.version>2.5.0</jimubi-spring-boot-starter.version>
<minidao.version>1.10.20</minidao.version>
<minidao.version>1.10.22</minidao.version>
<autopoi-web.version>2.0.4</autopoi-web.version>
<!-- 持久层 -->
@ -233,7 +233,7 @@
<dependency>
<groupId>org.jeecgframework.boot3</groupId>
<artifactId>jeecg-boot-starter-job</artifactId>
<version>3.9.2</version>
<version>3.9.3</version>
</dependency>
<!--redis分布式锁-->
@ -254,6 +254,12 @@
</exclusion>
</exclusions>
</dependency>
<!--rabbitmq消息队列-->
<dependency>
<groupId>org.jeecgframework.boot3</groupId>
<artifactId>jeecg-boot-starter-sentinel</artifactId>
<version>${jeecgboot.version}</version>
</dependency>
<!--rocketmq-->
<dependency>
<groupId>org.jeecgframework.boot3</groupId>
@ -264,12 +270,12 @@
<dependency>
<groupId>org.jeecgframework.boot3</groupId>
<artifactId>jeecg-boot-starter-shardingsphere</artifactId>
<version>3.9.2</version>
<version>3.9.3</version>
</dependency>
<dependency>
<groupId>org.jeecgframework.boot3</groupId>
<artifactId>jeecg-boot-starter-shardingsphere-nacos</artifactId>
<version>3.9.2</version>
<version>3.9.3</version>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
@ -557,7 +563,7 @@
<dependency>
<groupId>org.jeecgframework.boot3</groupId>
<artifactId>jeecg-boot-starter-ai</artifactId>
<version>3.9.2.4</version>
<version>3.9.3</version>
</dependency>
<!--flyway 支持 mysql5.7+、MariaDB10.3.16-->
<!--mysql5.6需要把版本号改成5.2.1-->

View File

@ -1,6 +1,6 @@
JeecgBoot 企业级低代码开发平台
===============
当前最新版本: 3.9.22026-04-30
当前最新版本: 3.9.32026-07-07
[![AUR](https://img.shields.io/badge/license-Apache%20License%202.0-blue.svg)](https://github.com/zhangdaiscott/jeecg-boot/blob/master/LICENSE)
[![](https://img.shields.io/badge/Author-北京国炬软件-orange.svg)](http://jeecg.com/aboutusIndex)

View File

@ -1,6 +1,6 @@
{
"name": "jeecgboot-vue3",
"version": "3.9.2",
"version": "3.9.3",
"author": {
"name": "北京国炬信息技术有限公司",
"email": "jeecgos@163.com",