update 适配 springdoc 新版本配置方式

master
疯狂的狮子Li 3 years ago
parent 68e57803f3
commit ac9e3f2ca4

@ -8,11 +8,15 @@ import io.swagger.v3.oas.models.Paths;
import io.swagger.v3.oas.models.info.Info; import io.swagger.v3.oas.models.info.Info;
import io.swagger.v3.oas.models.security.SecurityRequirement; import io.swagger.v3.oas.models.security.SecurityRequirement;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import org.springdoc.core.*; import org.springdoc.core.configuration.SpringDocConfiguration;
import org.springdoc.core.customizers.OpenApiBuilderCustomizer; import org.springdoc.core.customizers.OpenApiBuilderCustomizer;
import org.springdoc.core.customizers.OpenApiCustomiser; import org.springdoc.core.customizers.OpenApiCustomizer;
import org.springdoc.core.customizers.ServerBaseUrlCustomizer; import org.springdoc.core.customizers.ServerBaseUrlCustomizer;
import org.springdoc.core.properties.SpringDocConfigProperties;
import org.springdoc.core.providers.JavadocProvider; import org.springdoc.core.providers.JavadocProvider;
import org.springdoc.core.service.OpenAPIService;
import org.springdoc.core.service.SecurityService;
import org.springdoc.core.utils.PropertyResolverUtils;
import org.springframework.boot.autoconfigure.AutoConfigureBefore; import org.springframework.boot.autoconfigure.AutoConfigureBefore;
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
@ -88,7 +92,7 @@ public class SwaggerConfig {
* OpenApi * OpenApi
*/ */
@Bean @Bean
public OpenApiCustomiser openApiCustomiser() { public OpenApiCustomizer openApiCustomiser() {
String contextPath = serverProperties.getServlet().getContextPath(); String contextPath = serverProperties.getServlet().getContextPath();
String finalContextPath; String finalContextPath;
if (StringUtils.isBlank(contextPath) || "/".equals(contextPath)) { if (StringUtils.isBlank(contextPath) || "/".equals(contextPath)) {

@ -9,16 +9,15 @@ import io.swagger.v3.oas.models.OpenAPI;
import io.swagger.v3.oas.models.Operation; import io.swagger.v3.oas.models.Operation;
import io.swagger.v3.oas.models.Paths; import io.swagger.v3.oas.models.Paths;
import io.swagger.v3.oas.models.tags.Tag; import io.swagger.v3.oas.models.tags.Tag;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springdoc.core.OpenAPIService;
import org.springdoc.core.PropertyResolverUtils;
import org.springdoc.core.SecurityService;
import org.springdoc.core.SpringDocConfigProperties;
import org.springdoc.core.customizers.OpenApiBuilderCustomizer; import org.springdoc.core.customizers.OpenApiBuilderCustomizer;
import org.springdoc.core.customizers.ServerBaseUrlCustomizer; import org.springdoc.core.customizers.ServerBaseUrlCustomizer;
import org.springdoc.core.properties.SpringDocConfigProperties;
import org.springdoc.core.providers.JavadocProvider; import org.springdoc.core.providers.JavadocProvider;
import org.springdoc.core.service.OpenAPIService;
import org.springdoc.core.service.SecurityService;
import org.springdoc.core.utils.PropertyResolverUtils;
import org.springframework.context.ApplicationContext; import org.springframework.context.ApplicationContext;
import org.springframework.core.annotation.AnnotatedElementUtils; import org.springframework.core.annotation.AnnotatedElementUtils;
import org.springframework.util.CollectionUtils; import org.springframework.util.CollectionUtils;
@ -34,18 +33,14 @@ import java.util.stream.Stream;
* openapi * openapi
* 使 * 使
*/ */
@Slf4j
@SuppressWarnings("all") @SuppressWarnings("all")
public class OpenApiHandler extends OpenAPIService { public class OpenApiHandler extends OpenAPIService {
/** /**
* The constant LOGGER. * The Basic error controller.
*/
private static final Logger LOGGER = LoggerFactory.getLogger(OpenAPIService.class);
/**
* The Context.
*/ */
private ApplicationContext context; private static Class<?> basicErrorController;
/** /**
* The Security parser. * The Security parser.
@ -60,7 +55,7 @@ public class OpenApiHandler extends OpenAPIService {
/** /**
* The Springdoc tags. * The Springdoc tags.
*/ */
private final Map<HandlerMethod, io.swagger.v3.oas.models.tags.Tag> springdocTags = new HashMap<>(); private final Map<HandlerMethod, Tag> springdocTags = new HashMap<>();
/** /**
* The Open api builder customisers. * The Open api builder customisers.
@ -77,55 +72,40 @@ public class OpenApiHandler extends OpenAPIService {
*/ */
private final SpringDocConfigProperties springDocConfigProperties; private final SpringDocConfigProperties springDocConfigProperties;
/**
* The Open api.
*/
private OpenAPI openAPI;
/** /**
* The Cached open api map. * The Cached open api map.
*/ */
private final Map<String, OpenAPI> cachedOpenAPI = new HashMap<>(); private final Map<String, OpenAPI> cachedOpenAPI = new HashMap<>();
/** /**
* The Is servers present. * The Property resolver utils.
*/ */
private boolean isServersPresent; private final PropertyResolverUtils propertyResolverUtils;
/** /**
* The Server base url. * The javadoc provider.
*/ */
private String serverBaseUrl; private final Optional<JavadocProvider> javadocProvider;
/** /**
* The Property resolver utils. * The Context.
*/ */
private final PropertyResolverUtils propertyResolverUtils; private ApplicationContext context;
/** /**
* The javadoc provider. * The Open api.
*/ */
private final Optional<JavadocProvider> javadocProvider; private OpenAPI openAPI;
/** /**
* The Basic error controller. * The Is servers present.
*/ */
private static Class<?> basicErrorController; private boolean isServersPresent;
static { /**
try { * The Server base url.
//spring-boot 2 */
basicErrorController = Class.forName("org.springframework.boot.autoconfigure.web.servlet.error.BasicErrorController"); private String serverBaseUrl;
} catch (ClassNotFoundException e) {
//spring-boot 1
try {
basicErrorController = Class.forName("org.springframework.boot.autoconfigure.web.BasicErrorController");
} catch (ClassNotFoundException classNotFoundException) {
//Basic error controller class not found
LOGGER.trace(classNotFoundException.getMessage());
}
}
}
/** /**
* Instantiates a new Open api builder. * Instantiates a new Open api builder.

Loading…
Cancel
Save