feat: update springdoc

YudaoSwaggerAutoConfiguration ==> YudaoSpringDocAutoConfiguration
This commit is contained in:
xingyu4j 2025-06-10 14:27:41 +08:00
parent 586f12971c
commit 1f48f1e56e
20 changed files with 50 additions and 91 deletions

View File

@ -15,21 +15,20 @@
<properties>
<revision>2.6.0-SNAPSHOT</revision>
<flatten-maven-plugin.version>1.6.0</flatten-maven-plugin.version>
<flatten-maven-plugin.version>1.7.0</flatten-maven-plugin.version>
<!-- 统一依赖管理 -->
<spring.boot.version>3.5.0</spring.boot.version>
<!-- Web 相关 -->
<!-- TODO: 等待 springdoc 适配 springboot 3.5 -->
<springdoc.version>2.8.8</springdoc.version>
<knife4j.version>4.6.0</knife4j.version>
<springdoc.version>2.8.9</springdoc.version>
<!-- DB 相关 -->
<druid.version>1.2.25</druid.version>
<!-- TODO: 等待 mybatis 及 mybatis-plus 适配 springboot 3.5 -->
<mybatis.version>3.5.19</mybatis.version>
<mybatis-plus.version>3.5.12</mybatis-plus.version>
<dynamic-datasource.version>4.3.1</dynamic-datasource.version>
<mybatis-plus-join.version>1.4.13</mybatis-plus-join.version>
<easy-trans.version>3.0.6</easy-trans.version>
<redisson.version>3.48.0</redisson.version>
<redisson.version>3.49.0</redisson.version>
<dm8.jdbc.version>8.1.3.140</dm8.jdbc.version>
<kingbase.jdbc.version>8.6.0</kingbase.jdbc.version>
<opengauss.jdbc.version>5.1.0</opengauss.jdbc.version>
@ -60,23 +59,21 @@
<fastjson.version>1.2.83</fastjson.version>
<guava.version>33.4.8-jre</guava.version>
<transmittable-thread-local.version>2.14.5</transmittable-thread-local.version>
<commons-net.version>3.11.1</commons-net.version>
<jsch.version>0.1.55</jsch.version>
<tika-core.version>3.2.0</tika-core.version>
<ip2region.version>2.7.0</ip2region.version>
<bizlog-sdk.version>3.0.6</bizlog-sdk.version>
<netty.version>4.2.1.Final</netty.version>
<netty.version>4.2.2.Final</netty.version>
<mqtt.version>1.2.5</mqtt.version>
<pf4j-spring.version>0.9.0</pf4j-spring.version>
<vertx.version>4.5.13</vertx.version>
<!-- 三方云服务相关 -->
<commons-io.version>2.19.0</commons-io.version>
<commons-compress.version>1.27.1</commons-compress.version>
<awssdk.version>2.30.14</awssdk.version>
<awssdk.version>2.31.60</awssdk.version>
<justauth.version>1.16.7</justauth.version>
<justauth-starter.version>1.4.0</justauth-starter.version>
<jimureport.version>1.9.4</jimureport.version>
<weixin-java.version>4.7.5-20250529.111829</weixin-java.version>
<weixin-java.version>4.7.6-20250609.143003</weixin-java.version>
</properties>
<dependencyManagement>
@ -152,11 +149,6 @@
<version>${revision}</version>
</dependency>
<dependency>
<groupId>com.github.xingfudeshi</groupId> <!-- TODO 芋艿https://github.com/xiaoymin/knife4j/issues/874 -->
<artifactId>knife4j-openapi3-jakarta-spring-boot-starter</artifactId>
<version>${knife4j.version}</version>
</dependency>
<dependency>
<groupId>org.springdoc</groupId>
<artifactId>springdoc-openapi-starter-webmvc-api</artifactId>
@ -524,18 +516,6 @@
<version>${transmittable-thread-local.version}</version>
</dependency>
<dependency>
<groupId>commons-net</groupId>
<artifactId>commons-net</artifactId> <!-- 解决 ftp 连接 -->
<version>${commons-net.version}</version>
</dependency>
<dependency>
<groupId>com.jcraft</groupId>
<artifactId>jsch</artifactId> <!-- 解决 sftp 连接 -->
<version>${jsch.version}</version>
</dependency>
<dependency>
<groupId>com.anji-plus</groupId>
<artifactId>captcha-spring-boot-starter</artifactId> <!-- 验证码,一般用于登录使用 -->

View File

@ -38,10 +38,6 @@
<scope>provided</scope> <!-- 解决工具类 SpringExpressionUtils 加载的时候访问不到 org.aspectj.lang.JoinPoint 问题 -->
</dependency>
<dependency>
<groupId>com.github.xingfudeshi</groupId>
<artifactId>knife4j-openapi3-jakarta-spring-boot-starter</artifactId>
</dependency>
<dependency>
<groupId>org.springdoc</groupId>
<artifactId>springdoc-openapi-starter-webmvc-api</artifactId>

View File

@ -10,9 +10,9 @@ import jakarta.validation.constraints.NotEmpty;
*
* @author 芋道源码
*/
@ConfigurationProperties("yudao.swagger")
@ConfigurationProperties("springdoc.configs")
@Data
public class SwaggerProperties {
public class SpringDocProperties {
/**
* 标题

View File

@ -44,14 +44,14 @@ import static cn.iocoder.yudao.framework.web.core.util.WebFrameworkUtils.HEADER_
*/
@AutoConfiguration
@ConditionalOnClass({OpenAPI.class})
@EnableConfigurationProperties(SwaggerProperties.class)
@EnableConfigurationProperties(SpringDocProperties.class)
@ConditionalOnProperty(prefix = "springdoc.api-docs", name = "enabled", havingValue = "true", matchIfMissing = true) // 设置为 false 禁用
public class YudaoSwaggerAutoConfiguration {
public class YudaoSpringDocAutoConfiguration {
// ========== 全局 OpenAPI 配置 ==========
@Bean
public OpenAPI createApi(SwaggerProperties properties) {
public OpenAPI createApi(SpringDocProperties properties) {
Map<String, SecurityScheme> securitySchemas = buildSecuritySchemes();
OpenAPI openAPI = new OpenAPI()
// 接口信息
@ -66,7 +66,7 @@ public class YudaoSwaggerAutoConfiguration {
/**
* API 摘要信息
*/
private Info buildInfo(SwaggerProperties properties) {
private Info buildInfo(SpringDocProperties properties) {
return new Info()
.title(properties.getTitle())
.description(properties.getDescription())
@ -144,8 +144,6 @@ public class YudaoSwaggerAutoConfiguration {
/**
* 构建 Authorization 认证请求头参数
*
* 解决 Knife4j <a href="https://gitee.com/xiaoym/knife4j/issues/I69QBU">Authorize 未生效请求header里未包含参数</a>
*
* @return 认证参数
*/
private static Parameter buildSecurityHeaderParameter() {

View File

@ -1,5 +1,5 @@
/**
* 基于 Swagger + Knife4j 实现 API 接口文档
* 基于 spring dod 实现 API 接口文档
*
* @author 芋道源码
*/

View File

@ -1,6 +1,6 @@
cn.iocoder.yudao.framework.apilog.config.YudaoApiLogAutoConfiguration
cn.iocoder.yudao.framework.jackson.config.YudaoJacksonAutoConfiguration
cn.iocoder.yudao.framework.swagger.config.YudaoSwaggerAutoConfiguration
cn.iocoder.yudao.framework.swagger.config.YudaoSpringDocAutoConfiguration
cn.iocoder.yudao.framework.web.config.YudaoWebAutoConfiguration
cn.iocoder.yudao.framework.xss.config.YudaoXssAutoConfiguration
cn.iocoder.yudao.framework.banner.config.YudaoBannerAutoConfiguration
cn.iocoder.yudao.framework.banner.config.YudaoBannerAutoConfiguration

View File

@ -1,6 +1,6 @@
package cn.iocoder.yudao.module.ai.framework.web.config;
import cn.iocoder.yudao.framework.swagger.config.YudaoSwaggerAutoConfiguration;
import cn.iocoder.yudao.framework.swagger.config.YudaoSpringDocAutoConfiguration;
import org.springdoc.core.models.GroupedOpenApi;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@ -18,7 +18,7 @@ public class AiWebConfiguration {
*/
@Bean
public GroupedOpenApi aiGroupedOpenApi() {
return YudaoSwaggerAutoConfiguration.buildGroupedOpenApi("ai");
return YudaoSpringDocAutoConfiguration.buildGroupedOpenApi("ai");
}
}

View File

@ -1,7 +1,7 @@
package cn.iocoder.yudao.module.bpm.framework.web.config;
import cn.iocoder.yudao.framework.common.enums.WebFilterOrderEnum;
import cn.iocoder.yudao.framework.swagger.config.YudaoSwaggerAutoConfiguration;
import cn.iocoder.yudao.framework.swagger.config.YudaoSpringDocAutoConfiguration;
import cn.iocoder.yudao.module.bpm.framework.web.core.FlowableWebFilter;
import org.springdoc.core.models.GroupedOpenApi;
import org.springframework.boot.web.servlet.FilterRegistrationBean;
@ -21,7 +21,7 @@ public class BpmWebConfiguration {
*/
@Bean
public GroupedOpenApi bpmGroupedOpenApi() {
return YudaoSwaggerAutoConfiguration.buildGroupedOpenApi("bpm");
return YudaoSpringDocAutoConfiguration.buildGroupedOpenApi("bpm");
}
/**

View File

@ -1,6 +1,6 @@
package cn.iocoder.yudao.module.crm.framework.web.config;
import cn.iocoder.yudao.framework.swagger.config.YudaoSwaggerAutoConfiguration;
import cn.iocoder.yudao.framework.swagger.config.YudaoSpringDocAutoConfiguration;
import org.springdoc.core.models.GroupedOpenApi;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@ -18,7 +18,7 @@ public class CrmWebConfiguration {
*/
@Bean
public GroupedOpenApi crmGroupedOpenApi() {
return YudaoSwaggerAutoConfiguration.buildGroupedOpenApi("crm");
return YudaoSpringDocAutoConfiguration.buildGroupedOpenApi("crm");
}
}

View File

@ -1,6 +1,6 @@
package cn.iocoder.yudao.module.erp.framework.web.config;
import cn.iocoder.yudao.framework.swagger.config.YudaoSwaggerAutoConfiguration;
import cn.iocoder.yudao.framework.swagger.config.YudaoSpringDocAutoConfiguration;
import org.springdoc.core.models.GroupedOpenApi;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@ -18,7 +18,7 @@ public class ErpWebConfiguration {
*/
@Bean
public GroupedOpenApi erpGroupedOpenApi() {
return YudaoSwaggerAutoConfiguration.buildGroupedOpenApi("erp");
return YudaoSpringDocAutoConfiguration.buildGroupedOpenApi("erp");
}
}

View File

@ -94,15 +94,6 @@
<artifactId>spring-boot-admin-starter-server</artifactId> <!-- 实现 Spring Boot Admin Server 服务端 -->
</dependency>
<!-- 三方云服务相关 -->
<dependency>
<groupId>commons-net</groupId>
<artifactId>commons-net</artifactId> <!-- 文件客户端:解决 ftp 连接 -->
</dependency>
<dependency>
<groupId>com.jcraft</groupId>
<artifactId>jsch</artifactId> <!-- 文件客户端:解决 sftp 连接 -->
</dependency>
<!-- 文件客户端解决阿里云、腾讯云、minio 等 S3 连接 -->
<dependency>
<groupId>software.amazon.awssdk</groupId>

View File

@ -1,6 +1,6 @@
package cn.iocoder.yudao.module.infra.framework.web.config;
import cn.iocoder.yudao.framework.swagger.config.YudaoSwaggerAutoConfiguration;
import cn.iocoder.yudao.framework.swagger.config.YudaoSpringDocAutoConfiguration;
import org.springdoc.core.models.GroupedOpenApi;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@ -18,7 +18,7 @@ public class InfraWebConfiguration {
*/
@Bean
public GroupedOpenApi infraGroupedOpenApi() {
return YudaoSwaggerAutoConfiguration.buildGroupedOpenApi("infra");
return YudaoSpringDocAutoConfiguration.buildGroupedOpenApi("infra");
}
}

View File

@ -1,6 +1,6 @@
package cn.iocoder.yudao.module.product.framework.web.config;
import cn.iocoder.yudao.framework.swagger.config.YudaoSwaggerAutoConfiguration;
import cn.iocoder.yudao.framework.swagger.config.YudaoSpringDocAutoConfiguration;
import org.springdoc.core.models.GroupedOpenApi;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@ -18,7 +18,7 @@ public class ProductWebConfiguration {
*/
@Bean
public GroupedOpenApi productGroupedOpenApi() {
return YudaoSwaggerAutoConfiguration.buildGroupedOpenApi("product");
return YudaoSpringDocAutoConfiguration.buildGroupedOpenApi("product");
}
}

View File

@ -1,6 +1,6 @@
package cn.iocoder.yudao.module.promotion.framework.web.config;
import cn.iocoder.yudao.framework.swagger.config.YudaoSwaggerAutoConfiguration;
import cn.iocoder.yudao.framework.swagger.config.YudaoSpringDocAutoConfiguration;
import org.springdoc.core.models.GroupedOpenApi;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@ -18,7 +18,7 @@ public class PromotionWebConfiguration {
*/
@Bean
public GroupedOpenApi promotionGroupedOpenApi() {
return YudaoSwaggerAutoConfiguration.buildGroupedOpenApi("promotion");
return YudaoSpringDocAutoConfiguration.buildGroupedOpenApi("promotion");
}
}

View File

@ -1,6 +1,6 @@
package cn.iocoder.yudao.module.trade.framework.web.config;
import cn.iocoder.yudao.framework.swagger.config.YudaoSwaggerAutoConfiguration;
import cn.iocoder.yudao.framework.swagger.config.YudaoSpringDocAutoConfiguration;
import org.springdoc.core.models.GroupedOpenApi;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@ -18,7 +18,7 @@ public class TradeWebConfiguration {
*/
@Bean
public GroupedOpenApi tradeGroupedOpenApi() {
return YudaoSwaggerAutoConfiguration.buildGroupedOpenApi("trade");
return YudaoSpringDocAutoConfiguration.buildGroupedOpenApi("trade");
}
}

View File

@ -1,6 +1,6 @@
package cn.iocoder.yudao.module.member.framework.web.config;
import cn.iocoder.yudao.framework.swagger.config.YudaoSwaggerAutoConfiguration;
import cn.iocoder.yudao.framework.swagger.config.YudaoSpringDocAutoConfiguration;
import org.springdoc.core.models.GroupedOpenApi;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@ -18,7 +18,7 @@ public class MemberWebConfiguration {
*/
@Bean
public GroupedOpenApi memberGroupedOpenApi() {
return YudaoSwaggerAutoConfiguration.buildGroupedOpenApi("member");
return YudaoSpringDocAutoConfiguration.buildGroupedOpenApi("member");
}
}

View File

@ -1,6 +1,6 @@
package cn.iocoder.yudao.module.mp.framework.web.config;
import cn.iocoder.yudao.framework.swagger.config.YudaoSwaggerAutoConfiguration;
import cn.iocoder.yudao.framework.swagger.config.YudaoSpringDocAutoConfiguration;
import org.springdoc.core.models.GroupedOpenApi;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@ -18,7 +18,7 @@ public class MpWebConfiguration {
*/
@Bean
public GroupedOpenApi mpGroupedOpenApi() {
return YudaoSwaggerAutoConfiguration.buildGroupedOpenApi("mp");
return YudaoSpringDocAutoConfiguration.buildGroupedOpenApi("mp");
}
}

View File

@ -1,6 +1,6 @@
package cn.iocoder.yudao.module.pay.framework.web.config;
import cn.iocoder.yudao.framework.swagger.config.YudaoSwaggerAutoConfiguration;
import cn.iocoder.yudao.framework.swagger.config.YudaoSpringDocAutoConfiguration;
import org.springdoc.core.models.GroupedOpenApi;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@ -18,7 +18,7 @@ public class PayWebConfiguration {
*/
@Bean
public GroupedOpenApi payGroupedOpenApi() {
return YudaoSwaggerAutoConfiguration.buildGroupedOpenApi("pay");
return YudaoSpringDocAutoConfiguration.buildGroupedOpenApi("pay");
}
}

View File

@ -1,6 +1,6 @@
package cn.iocoder.yudao.module.system.framework.web.config;
import cn.iocoder.yudao.framework.swagger.config.YudaoSwaggerAutoConfiguration;
import cn.iocoder.yudao.framework.swagger.config.YudaoSpringDocAutoConfiguration;
import org.springdoc.core.models.GroupedOpenApi;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@ -18,7 +18,7 @@ public class SystemWebConfiguration {
*/
@Bean
public GroupedOpenApi systemGroupedOpenApi() {
return YudaoSwaggerAutoConfiguration.buildGroupedOpenApi("system");
return YudaoSpringDocAutoConfiguration.buildGroupedOpenApi("system");
}
}

View File

@ -42,15 +42,17 @@ springdoc:
api-docs:
enabled: true
path: /v3/api-docs
configs:
title: 芋道快速开发平台
description: 提供管理后台、用户 App 的所有功能
version: ${yudao.info.version}
url: ${yudao.web.admin-ui.url}
email: xingyu4j@vip.qq.com
license: MIT
license-url: https://gitee.com/zhijiantianya/ruoyi-vue-pro/blob/master/LICENSE
swagger-ui:
enabled: true
enabled: false
path: /swagger-ui
default-flat-param-object: true # 参见 https://doc.xiaominfo.com/docs/faq/v4/knife4j-parameterobject-flat-param 文档
knife4j:
enable: false # TODO 芋艿需要关闭增强具体原因见https://github.com/xiaoymin/knife4j/issues/874
setting:
language: zh_cn
# 工作流 Flowable 配置
flowable:
@ -257,14 +259,6 @@ yudao:
sender-kafka:
topic: ${spring.application.name}-websocket # 消息发送的 Kafka Topic
consumer-group: ${spring.application.name}-websocket-consumer # 消息发送的 Kafka Consumer Group
swagger:
title: 芋道快速开发平台
description: 提供管理后台、用户 App 的所有功能
version: ${yudao.info.version}
url: ${yudao.web.admin-ui.url}
email: xingyu4j@vip.qq.com
license: MIT
license-url: https://gitee.com/zhijiantianya/ruoyi-vue-pro/blob/master/LICENSE
codegen:
base-package: ${yudao.info.base-package}
db-schemas: ${spring.datasource.dynamic.datasource.master.name}
@ -315,4 +309,4 @@ yudao:
debug: false
# 插件配置 TODO 芋艿【IOT】需要处理下
pf4j:
pluginsDir: /Users/anhaohao/code/gitee/ruoyi-vue-pro/plugins # 插件目录
pluginsDir: /Users/anhaohao/code/gitee/ruoyi-vue-pro/plugins # 插件目录