From 17efddc6a667670dca682bf36b51a43e99615e6d Mon Sep 17 00:00:00 2001 From: k94314517 <8417338+k94314517@user.noreply.gitee.com> Date: 星期三, 16 十月 2024 15:59:38 +0800 Subject: [PATCH] 代码初始化 --- server/system_gateway/src/main/java/com/doumee/config/swagger/SwaggerConfig.java | 88 ++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 88 insertions(+), 0 deletions(-) diff --git a/server/system_gateway/src/main/java/com/doumee/config/swagger/SwaggerConfig.java b/server/system_gateway/src/main/java/com/doumee/config/swagger/SwaggerConfig.java new file mode 100644 index 0000000..07e9c82 --- /dev/null +++ b/server/system_gateway/src/main/java/com/doumee/config/swagger/SwaggerConfig.java @@ -0,0 +1,88 @@ +package com.doumee.config.swagger; + +import com.github.xiaoymin.knife4j.spring.annotations.EnableKnife4j; +import com.google.common.base.Function; +import com.google.common.base.Optional; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import springfox.documentation.RequestHandler; +import springfox.documentation.builders.ApiInfoBuilder; +import springfox.documentation.builders.PathSelectors; +import springfox.documentation.oas.annotations.EnableOpenApi; +import springfox.documentation.service.ApiInfo; +import springfox.documentation.spi.DocumentationType; +import springfox.documentation.spring.web.plugins.Docket; + +import java.util.function.Predicate; + +/** + * Swagger閰嶇疆 + * @author Eva.Caesar Liu + * @date 2022/03/11 10:24 + */ +@Configuration +@EnableOpenApi +@EnableKnife4j +public class SwaggerConfig { + + @Value("${swagger.host:}") + private String host; + + @Value("${swagger.title:鎺ュ彛鏂囨。}") + private String title; + + @Value("${swagger.description:}") + private String description; + + @Value("${project.version:}") + private String version; + + @Bean + public ApiInfo getApiInfo() { + return new ApiInfoBuilder() + .title(title) + .description(description) + .version(version) + .build(); + } + @Bean + public Docket getDocket2() { + return new Docket(DocumentationType.SWAGGER_2) + .apiInfo(this.getApiInfo()).groupName("default") + .host(host) + .select() + .apis( basePackage("com.doumee.api.gateway;")) + // 璁剧疆闇�瑕佽鎵弿鐨勭被锛岃繖閲岃缃负娣诲姞浜咢Api娉ㄨВ鐨勭被 +// .apis(RequestHandlerSelectors.withClassAnnotation(Api.class)) + .paths(PathSelectors.any()) + .build(); + } + + /** + * 閲嶅啓basePackage鏂规硶锛屼娇鑳藉瀹炵幇澶氬寘璁块棶锛屽鍒惰创涓婂幓 + * @author teavamc + * @date 2019/1/26 + * @return com.google.common.base.Predicate<springfox.documentation.RequestHandler> + */ + public static Predicate<RequestHandler> basePackage(String basePackage) { + return input -> declaringClass(input).transform(handlerPackage(basePackage)).or(true); + } + + private static Function<Class<?>, Boolean> handlerPackage(String basePackage) { + return input -> { + // 寰幆鍒ゆ柇鍖归厤 + for (String strPackage : basePackage.split(";")) { + boolean isMatch = input.getPackage().getName().startsWith(strPackage); + if (isMatch) { + return true; + } + } + return false; + }; + } + + private static Optional<? extends Class<?>> declaringClass(RequestHandler input) { + return Optional.fromNullable(input.declaringClass()); + } +} -- Gitblit v1.9.3