diff --git a/pom.xml b/pom.xml
index fada46eb..f0041fc3 100644
--- a/pom.xml
+++ b/pom.xml
@@ -20,7 +20,7 @@
17
8.0.33
3.5.16
- 2.1.0
+ 2.8.5
0.15.0
5.2.3
3.2.1
diff --git a/ruoyi-admin/src/main/resources/application.yml b/ruoyi-admin/src/main/resources/application.yml
index b30c848b..490efb23 100644
--- a/ruoyi-admin/src/main/resources/application.yml
+++ b/ruoyi-admin/src/main/resources/application.yml
@@ -215,20 +215,25 @@ mybatis-encryptor:
publicKey:
privateKey:
-# Swagger配置
-swagger:
+springdoc:
+ api-docs:
+ # 是否开启接口文档
+ enabled: true
+ # swagger-ui:
+ # # 持久化认证数据
+ # persistAuthorization: true
info:
# 标题
- title: '标题:${ruoyi.name}多租户管理系统_接口文档'
+ title: '标题:RuoYi-Vue-Plus多租户管理系统_接口文档'
# 描述
description: '描述:用于管理集团旗下公司的人员信息,具体包括XXX,XXX模块...'
# 版本
version: '版本号: ${ruoyi.version}'
# 作者信息
contact:
- name: ageerle
- email: ageerle@163.com
- url: https://gitee.com/ageerle/ruoyi-ai
+ name: Lion Li
+ email: crazylionli@163.com
+ url: https://gitee.com/dromara/RuoYi-Vue-Plus
components:
# 鉴权方式配置
security-schemes:
@@ -236,24 +241,18 @@ swagger:
type: APIKEY
in: HEADER
name: ${sa-token.token-name}
-
-springdoc:
- api-docs:
- # 是否开启接口文档
- enabled: true
- swagger-ui:
- # 持久化认证数据
- persistAuthorization: true
#这里定义了两个分组,可定义多个,也可以不定义
group-configs:
- group: 1.演示模块
- packages-to-scan: org.ruoyi.demo
+ packages-to-scan: org.dromara.demo
- group: 2.通用模块
- packages-to-scan: org.ruoyi.web
+ packages-to-scan: org.dromara.web
- group: 3.系统模块
- packages-to-scan: org.ruoyi.system
+ packages-to-scan: org.dromara.system
- group: 4.代码生成模块
- packages-to-scan: org.ruoyi.generator
+ packages-to-scan: org.dromara.generator
+ - group: 5.工作流模块
+ packages-to-scan: org.dromara.workflow
# 防止XSS攻击
xss:
diff --git a/ruoyi-admin/src/main/resources/static/favicon.ico b/ruoyi-admin/src/main/resources/static/favicon.ico
new file mode 100644
index 00000000..5db8e1d6
Binary files /dev/null and b/ruoyi-admin/src/main/resources/static/favicon.ico differ
diff --git a/ruoyi-common/ruoyi-common-doc/src/main/java/org/ruoyi/common/doc/config/SwaggerConfig.java b/ruoyi-common/ruoyi-common-doc/src/main/java/org/ruoyi/common/doc/config/SpringDocConfig.java
similarity index 86%
rename from ruoyi-common/ruoyi-common-doc/src/main/java/org/ruoyi/common/doc/config/SwaggerConfig.java
rename to ruoyi-common/ruoyi-common-doc/src/main/java/org/ruoyi/common/doc/config/SpringDocConfig.java
index fe95cbc2..9361297d 100644
--- a/ruoyi-common/ruoyi-common-doc/src/main/java/org/ruoyi/common/doc/config/SwaggerConfig.java
+++ b/ruoyi-common/ruoyi-common-doc/src/main/java/org/ruoyi/common/doc/config/SpringDocConfig.java
@@ -6,7 +6,7 @@ import io.swagger.v3.oas.models.info.Info;
import io.swagger.v3.oas.models.security.SecurityRequirement;
import lombok.RequiredArgsConstructor;
import org.ruoyi.common.core.utils.StringUtils;
-import org.ruoyi.common.doc.config.properties.SwaggerProperties;
+import org.ruoyi.common.doc.config.properties.SpringDocProperties;
import org.ruoyi.common.doc.handler.OpenApiHandler;
import org.springdoc.core.configuration.SpringDocConfiguration;
import org.springdoc.core.customizers.OpenApiBuilderCustomizer;
@@ -36,26 +36,26 @@ import java.util.Set;
*/
@RequiredArgsConstructor
@AutoConfiguration(before = SpringDocConfiguration.class)
-@EnableConfigurationProperties(SwaggerProperties.class)
+@EnableConfigurationProperties(SpringDocProperties.class)
@ConditionalOnProperty(name = "springdoc.api-docs.enabled", havingValue = "true", matchIfMissing = true)
-public class SwaggerConfig {
+public class SpringDocConfig {
private final ServerProperties serverProperties;
@Bean
@ConditionalOnMissingBean(OpenAPI.class)
- public OpenAPI openApi(SwaggerProperties swaggerProperties) {
+ public OpenAPI openApi(SpringDocProperties properties) {
OpenAPI openApi = new OpenAPI();
// 文档基本信息
- SwaggerProperties.InfoProperties infoProperties = swaggerProperties.getInfo();
+ SpringDocProperties.InfoProperties infoProperties = properties.getInfo();
Info info = convertInfo(infoProperties);
openApi.info(info);
// 扩展文档信息
- openApi.externalDocs(swaggerProperties.getExternalDocs());
- openApi.tags(swaggerProperties.getTags());
- openApi.paths(swaggerProperties.getPaths());
- openApi.components(swaggerProperties.getComponents());
- Set keySet = swaggerProperties.getComponents().getSecuritySchemes().keySet();
+ openApi.externalDocs(properties.getExternalDocs());
+ openApi.tags(properties.getTags());
+ openApi.paths(properties.getPaths());
+ openApi.components(properties.getComponents());
+ Set keySet = properties.getComponents().getSecuritySchemes().keySet();
List list = new ArrayList<>();
SecurityRequirement securityRequirement = new SecurityRequirement();
keySet.forEach(securityRequirement::addList);
@@ -65,7 +65,7 @@ public class SwaggerConfig {
return openApi;
}
- private Info convertInfo(SwaggerProperties.InfoProperties infoProperties) {
+ private Info convertInfo(SpringDocProperties.InfoProperties infoProperties) {
Info info = new Info();
info.setTitle(infoProperties.getTitle());
info.setDescription(infoProperties.getDescription());
diff --git a/ruoyi-common/ruoyi-common-doc/src/main/java/org/ruoyi/common/doc/config/properties/SwaggerProperties.java b/ruoyi-common/ruoyi-common-doc/src/main/java/org/ruoyi/common/doc/config/properties/SpringDocProperties.java
similarity index 95%
rename from ruoyi-common/ruoyi-common-doc/src/main/java/org/ruoyi/common/doc/config/properties/SwaggerProperties.java
rename to ruoyi-common/ruoyi-common-doc/src/main/java/org/ruoyi/common/doc/config/properties/SpringDocProperties.java
index 057c70f7..66f80c70 100644
--- a/ruoyi-common/ruoyi-common-doc/src/main/java/org/ruoyi/common/doc/config/properties/SwaggerProperties.java
+++ b/ruoyi-common/ruoyi-common-doc/src/main/java/org/ruoyi/common/doc/config/properties/SpringDocProperties.java
@@ -18,8 +18,8 @@ import java.util.List;
* @author Lion Li
*/
@Data
-@ConfigurationProperties(prefix = "swagger")
-public class SwaggerProperties {
+@ConfigurationProperties(prefix = "springdoc")
+public class SpringDocProperties {
/**
* 文档基本信息
diff --git a/ruoyi-common/ruoyi-common-doc/src/main/java/org/ruoyi/common/doc/handler/OpenApiHandler.java b/ruoyi-common/ruoyi-common-doc/src/main/java/org/ruoyi/common/doc/handler/OpenApiHandler.java
index 34aff596..48dd1acf 100644
--- a/ruoyi-common/ruoyi-common-doc/src/main/java/org/ruoyi/common/doc/handler/OpenApiHandler.java
+++ b/ruoyi-common/ruoyi-common-doc/src/main/java/org/ruoyi/common/doc/handler/OpenApiHandler.java
@@ -11,6 +11,7 @@ import io.swagger.v3.oas.models.Paths;
import io.swagger.v3.oas.models.tags.Tag;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
+import org.ruoyi.common.core.utils.StreamUtils;
import org.springdoc.core.customizers.OpenApiBuilderCustomizer;
import org.springdoc.core.customizers.ServerBaseUrlCustomizer;
import org.springdoc.core.properties.SpringDocConfigProperties;
@@ -154,11 +155,11 @@ public class OpenApiHandler extends OpenAPIService {
if (!CollectionUtils.isEmpty(tagsStr))
tagsStr = tagsStr.stream()
- .map(str -> propertyResolverUtils.resolve(str, locale))
- .collect(Collectors.toSet());
+ .map(str -> propertyResolverUtils.resolve(str, locale))
+ .collect(Collectors.toSet());
if (springdocTags.containsKey(handlerMethod)) {
- Tag tag = springdocTags.get(handlerMethod);
+ io.swagger.v3.oas.models.tags.Tag tag = springdocTags.get(handlerMethod);
tagsStr.add(tag.getName());
if (openAPI.getTags() == null || !openAPI.getTags().contains(tag)) {
openAPI.addTagsItem(tag);
@@ -182,7 +183,7 @@ public class OpenApiHandler extends OpenAPIService {
if (javadocProvider.isPresent()) {
String description = javadocProvider.get().getClassJavadoc(handlerMethod.getBeanType());
if (StringUtils.isNotBlank(description)) {
- Tag tag = new Tag();
+ io.swagger.v3.oas.models.tags.Tag tag = new io.swagger.v3.oas.models.tags.Tag();
// 自定义部分 修改使用java注释当tag名
List list = IoUtil.readLines(new StringReader(description), new ArrayList<>());
@@ -203,7 +204,7 @@ public class OpenApiHandler extends OpenAPIService {
if (!CollectionUtils.isEmpty(tags)) {
// Existing tags
- List openApiTags = openAPI.getTags();
+ List openApiTags = openAPI.getTags();
if (!CollectionUtils.isEmpty(openApiTags))
tags.addAll(openApiTags);
openAPI.setTags(new ArrayList<>(tags));
@@ -211,7 +212,7 @@ public class OpenApiHandler extends OpenAPIService {
// Handle SecurityRequirement at operation level
io.swagger.v3.oas.annotations.security.SecurityRequirement[] securityRequirements = securityParser
- .getSecurityRequirements(handlerMethod);
+ .getSecurityRequirements(handlerMethod);
if (securityRequirements != null) {
if (securityRequirements.length == 0)
operation.setSecurity(Collections.emptyList());
@@ -222,23 +223,23 @@ public class OpenApiHandler extends OpenAPIService {
return operation;
}
- private void buildTagsFromMethod(Method method, Set tags, Set tagsStr, Locale locale) {
+ private void buildTagsFromMethod(Method method, Set tags, Set tagsStr, Locale locale) {
// method tags
Set tagsSet = AnnotatedElementUtils
- .findAllMergedAnnotations(method, Tags.class);
+ .findAllMergedAnnotations(method, Tags.class);
Set methodTags = tagsSet.stream()
- .flatMap(x -> Stream.of(x.value())).collect(Collectors.toSet());
+ .flatMap(x -> Stream.of(x.value())).collect(Collectors.toSet());
methodTags.addAll(AnnotatedElementUtils.findAllMergedAnnotations(method, io.swagger.v3.oas.annotations.tags.Tag.class));
if (!CollectionUtils.isEmpty(methodTags)) {
- tagsStr.addAll(methodTags.stream().map(tag -> propertyResolverUtils.resolve(tag.name(), locale)).collect(Collectors.toSet()));
+ tagsStr.addAll(StreamUtils.toSet(methodTags, tag -> propertyResolverUtils.resolve(tag.name(), locale)));
List allTags = new ArrayList<>(methodTags);
addTags(allTags, tags, locale);
}
}
- private void addTags(List sourceTags, Set tags, Locale locale) {
- Optional> optionalTagSet = AnnotationsUtils
- .getTags(sourceTags.toArray(new io.swagger.v3.oas.annotations.tags.Tag[0]), true);
+ private void addTags(List sourceTags, Set tags, Locale locale) {
+ Optional> optionalTagSet = AnnotationsUtils
+ .getTags(sourceTags.toArray(new io.swagger.v3.oas.annotations.tags.Tag[0]), true);
optionalTagSet.ifPresent(tagsSet -> {
tagsSet.forEach(tag -> {
tag.name(propertyResolverUtils.resolve(tag.getName(), locale));
diff --git a/ruoyi-common/ruoyi-common-doc/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports b/ruoyi-common/ruoyi-common-doc/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports
index 97e76b80..14b745e1 100644
--- a/ruoyi-common/ruoyi-common-doc/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports
+++ b/ruoyi-common/ruoyi-common-doc/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports
@@ -1 +1 @@
-org.ruoyi.common.doc.config.SwaggerConfig
+org.ruoyi.common.doc.config.SpringDocConfig