diff --git a/yudao-framework/yudao-spring-boot-starter-web/src/main/java/cn/iocoder/yudao/framework/swagger/config/YudaoSwaggerAutoConfiguration.java b/yudao-framework/yudao-spring-boot-starter-web/src/main/java/cn/iocoder/yudao/framework/swagger/config/YudaoSwaggerAutoConfiguration.java index 5b7456961f..994ce93555 100644 --- a/yudao-framework/yudao-spring-boot-starter-web/src/main/java/cn/iocoder/yudao/framework/swagger/config/YudaoSwaggerAutoConfiguration.java +++ b/yudao-framework/yudao-spring-boot-starter-web/src/main/java/cn/iocoder/yudao/framework/swagger/config/YudaoSwaggerAutoConfiguration.java @@ -15,6 +15,7 @@ import org.springdoc.core.*; import org.springdoc.core.customizers.OpenApiBuilderCustomizer; import org.springdoc.core.customizers.ServerBaseUrlCustomizer; import org.springdoc.core.providers.JavadocProvider; +import org.springdoc.core.providers.ObjectMapperProvider; import org.springframework.boot.autoconfigure.AutoConfiguration; import org.springframework.boot.autoconfigure.condition.ConditionalOnClass; import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; @@ -105,8 +106,8 @@ public class YudaoSwaggerAutoConfiguration { * 修复swagger文档A属性引用B属性时 A属性中定义B字段上的 @Schema 注解不生效问题 */ @Bean - public SchemaPropertyFixModelConverter schemaPropertyFixModelConverter(){ - return new SchemaPropertyFixModelConverter(); + public SchemaPropertyFixModelConverter schemaPropertyFixModelConverter(ObjectMapperProvider springDocObjectMapper){ + return new SchemaPropertyFixModelConverter(springDocObjectMapper); } // ========== 分组 OpenAPI 配置 ========== diff --git a/yudao-framework/yudao-spring-boot-starter-web/src/main/java/cn/iocoder/yudao/framework/swagger/core/converter/SchemaPropertyFixModelConverter.java b/yudao-framework/yudao-spring-boot-starter-web/src/main/java/cn/iocoder/yudao/framework/swagger/core/converter/SchemaPropertyFixModelConverter.java index ea7ba4fa81..18410adb65 100644 --- a/yudao-framework/yudao-spring-boot-starter-web/src/main/java/cn/iocoder/yudao/framework/swagger/core/converter/SchemaPropertyFixModelConverter.java +++ b/yudao-framework/yudao-spring-boot-starter-web/src/main/java/cn/iocoder/yudao/framework/swagger/core/converter/SchemaPropertyFixModelConverter.java @@ -1,16 +1,22 @@ package cn.iocoder.yudao.framework.swagger.core.converter; import cn.hutool.core.util.StrUtil; +import com.fasterxml.jackson.databind.BeanDescription; +import com.fasterxml.jackson.databind.JavaType; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.introspect.BeanPropertyDefinition; import io.swagger.v3.core.converter.AnnotatedType; import io.swagger.v3.core.converter.ModelConverter; import io.swagger.v3.core.converter.ModelConverterContext; +import io.swagger.v3.core.util.AnnotationsUtils; import io.swagger.v3.core.util.RefUtils; import io.swagger.v3.oas.models.media.Schema; +import org.apache.commons.lang3.StringUtils; +import org.springdoc.core.providers.ObjectMapperProvider; -import java.util.Collection; -import java.util.Iterator; -import java.util.Map; -import java.util.Optional; +import java.lang.annotation.Annotation; +import java.util.*; /** *
@@ -24,13 +30,18 @@ import java.util.Optional;
*/
public class SchemaPropertyFixModelConverter implements ModelConverter {
+ /**
+ * The Spring doc object mapper.
+ */
+ private final ObjectMapperProvider springDocObjectMapper;
/**
* Instantiates a new Polymorphic model converter.
*
*/
- public SchemaPropertyFixModelConverter() {
+ public SchemaPropertyFixModelConverter(ObjectMapperProvider springDocObjectMapper) {
+ this.springDocObjectMapper = springDocObjectMapper;
}
@Override
@@ -51,7 +62,7 @@ public class SchemaPropertyFixModelConverter implements ModelConverter {
* @param schemas the schemas
* @return the schema
*/
- @SuppressWarnings("rawtypes")
+ @SuppressWarnings("all")
private Schema supplementarySchema(AnnotatedType type, Schema schema, Collection