3.5.0
3.5.0
基于 SpringBoot 3.5.6 开发的 Java 后端后台管理业务基础框架,常用的业务功能已经集成,开箱即用,相关使用说明,可以参考:
主要更新
重要!重要!
3.5.0 之后的版本依赖 GropId io.github.mangocrisp 修改为 io.github.taybct,3.2.x 停止维护,请自行升级到 3.5.x。
本次更新是大版本更新,升级了底层 SpringBoot 版本到 Spring 官网目前正在维护的版本,详见Spring Boot,3.2.x 版本即将停止维护,所以升级到 3.5.x,本项目的版本也停止更新,只做 BUG 修复,请自行升级到 3.5.x。由于升级了
SpringBoot,相关的框架也升级了,请自行升级。
小提示
如果遇到依赖加载不了,不防试试把你的 maven 仓库配置的阿里云镜像注释一下,因为阿里的镜像仓库同步没那么快。😢😓
底层框架升级
- 【升级】JDK 21
- 【升级】Spring 6.2.11
- 【升级】Spring Boot 3.5.6
- 【升级】Spring Cloud 2025.0.0
- 【升级】Spring Cloud Alibaba 2025.0.0.0
- 【升级】其他相关依赖升级
pikaへ /|
/\7 ∠_/
/ │ / /
│ Z _,< / /`ヽ
│ ヽ / 〉
Y ` / /
イ● 、 ● ⊂⊃ 〈 /
() へ | \〈
>ー 、_ ィ │ //
/ へ / ノ<| \\
ヽ_ノ (_/ │//
7 |
>―r ̄ ̄`ー―_/发布结构调整
之前的发布是:
- spring-taybct-tools-dependencies:工具包依赖管理
- spring-taybct-tools:工具包
- spring-taybct-dependencies:业务框架包依赖管理
- spring-taybct:业务框架包
- spring-taybct-cloud-archetype:微服务业务
- spring-taybct-single-archetype:单体架构业务
现在改为:
- spring-taybct-tools-dependencies:工具包依赖管理
- spring-taybct-tools:工具包
- spring-taybct-cloud-archetype:微服务业务
- spring-taybct-single-archetype:单体架构业务
不再打包业务框架包,因为每个项目的业务是不一样的,有大量需要修改代码的需求。
相关信息
同时 3.2.4 以后的版本也不再打包业务框架包,请自行下载。
提示
可以考虑 Fork spring-taybct 项目,然后自己开发业务框架,这样也可以同时接收到新的更新。
配置更新
- 网关配置调整
升级了 Spring cloud 之后,Spring Cloud Gateway 也升级了,官网现在分成了 WebFlux 和 Web MVC 两个版本
This project provides an API Gateway built on top of the Spring Ecosystem, including: Spring 6, Spring Boot 3 and Project Reactor. Spring Cloud Gateway aims to provide a simple, yet effective way to route to APIs and provide cross cutting concerns to them such as: security, monitoring/metrics, and resiliency.
There are two distinct flavors of Spring Cloud Gateway: Server and Proxy Exchange. Each flavor offers WebFlux and Web MVC compatibility.
—— Spring Cloud Gateway
因此原先的网关的配置也要做了些调整,需要在 spring.cloud.gateway 后面加上 .server.flux,例如:
spring:
cloud:
gateway:
routes:
# 鉴权模块
- id: auth
uri: lb://auth
predicates:
- Path=/auth/**
filters:
- StripPrefix=1要修改为:
spring:
cloud:
gateway:
server:
webflux:
routes:
# 鉴权模块
- id: auth
uri: lb://auth
predicates:
- Path=/auth/**
filters:
- StripPrefix=1- Nacos 配置更新
Nacos Client 升级到了 3.1.0,原先的导入多个配置文件的方式:spring.cloud.nacos.config.shared-configs 已经不再使用了,现在可以使用 spring.config.import 来导入,例如:
spring:
cloud:
nacos:
config:
# 共享配置
shared-configs:
- data-id: ${taybct.config-prefix}.${spring.cloud.nacos.config.file-extension} # 基本配置
group: ${spring.cloud.nacos.config.group}
refresh: true可改为:
spring:
config:
import:
- optional:nacos:taybct.yml?group=${spring.cloud.nacos.config.group}&refreshEnabled=true # 基本配置配置说明
optional: 可选,如果不设置这个在拉取nacos配置异常时会快速失败,会导致 spring 容器启动失败
group: 指定 group 覆盖默认 group
refreshEnabled: 是否开启动态刷新
- 接口文档配置更新
升级到 spring boot 3.4.x 以后的版本之后, Knife4j 还没有兼容 springdoc-openapi 2.7.x 以后的版本,这里发布了我修复的 knife4j-openapi3-jakarta-spring-boot-starter 修复版本,并且已经发布到 Maven 仓库,当然,如果不想使用这个修复版本,我这边也做了对原生的 springdoc-openapi 的配置优化,直接只使用 /swagger-ui.html 访问即可。
openapi3 配置
# springdoc-openapi 配置
springdoc:
# API文档的基本信息
info:
title: 应用接口文档
description: 这是应用的API接口文档,提供所有可用接口的详细信息
version: v3.5.0
contact:
name: 开发者
email: developer@example.com
license:
name: Apache 2.0
url: https://www.apache.org/licenses/LICENSE-2.0.html
# Swagger UI 配置
swagger-ui:
# 自定义Swagger UI路径
path: /swagger-ui.html
# 默认展开的操作数量
doc-expansion: none
# 启用深链接
deep-linking: true
# 显示请求持续时间
display-request-duration: true
tags-sorter: alpha
operations-sorter: alpha
# API文档的路径匹配规则
api-docs:
# 自定义API文档JSON路径
path: /v3/api-docs
# 启用API文档
enabled: true
show-actuator: true
# 扫描的包路径,指定需要生成文档的控制器所在包
#packages-to-scan: io.github.mangocrisp.spring.taybct
# 需要排除的类
#packages-to-exclude: com.example.controller.internal
# 需要生成文档的路径匹配
#paths-to-match: /**
# 需要排除的路径
#paths-to-exclude: /error,/actuator/**
# 文档分组配置(如果需要多组文档)
group-configs:
- group: default
packages-to-scan: io.github.mangocrisp.spring.taybct
paths-to-match: /**
display-name: ${springdoc.info.title}参考 官网配置
- 其他配置
可以自行下载代码下来参考配置,或者自行修改。
工具包
- 底层升级
- 【升级】JDK 21
- 【升级】Spring 6.2.11
- 【升级】Spring Boot 3.5.6
- 【升级】Spring Cloud 2025.0.0
- 【升级】Spring Cloud Alibaba 2025.0.0.0
- 【升级】其他相关依赖升级
- 核心模块
【优化】
swagger/openapi 3配置优化,加入了鉴权配置【优化】 由于 Knife4j 并未兼容 springdoc-openapi 2.7.x 以后的版本,这里发布了我修复的 knife4j-openapi3-jakarta-spring-boot-starter 修复版本,并且已经发布到 Maven 仓库,使用方式如下:
<dependency> <groupId>io.github.mangocrisp</groupId> <artifactId>knife4j-openapi3-jakarta-spring-boot-starter</artifactId> <version>4.5.0.1</version> </dependency>【优化】在之前的版本里面,默认写了注解
@MapperScan({"io.github.taybct.**.mapper"}),现在把这个去掉了,新的项目里面需要手动添加@MapperScan来扫描Mapper Interface【修复】删除超时的本地消息文件时,可能为空数组的非空判断异常
框架
- 底层升级
- 【升级】JDK 21
- 【升级】Spring 6.2.11
- 【升级】Spring Boot 3.5.6
- 【升级】Spring Cloud 2025.0.0
- 【升级】Spring Cloud Alibaba 2025.0.0.0
- 【升级】其他相关依赖升级
- 【修复】部分 record 类型未实现
Serializable接口 导致传输数据异常,这里添加了Serializable接口 - 【更新】配置文件更新、数据库文件更新
- 【更新】数据库文件更新
- 【升级】鉴权路径拦截,
AntPathRequestMatcher被标记为Deprecated,已经不能使用了,所以删掉了,直接使用AuthorizationManagerRequestMatcherRegistry.requestMatchers(String... patterns)填字符串就行了 - 【更新】
spring-taybct-tools升级到3.5.0