From 432d484e073635af3c2d8e329ca1efcd1d8378fc Mon Sep 17 00:00:00 2001 From: lbw Date: Tue, 28 Jun 2022 16:30:10 +0800 Subject: [PATCH] =?UTF-8?q?:recycle:=20Refactoring=20code.=20=E9=87=8D?= =?UTF-8?q?=E6=9E=84swagger=20=E6=A8=A1=E5=9D=97=E9=80=9A=E8=BF=87=20impor?= =?UTF-8?q?t=20=E6=B3=A8=E8=A7=A3=E5=8A=A8=E6=80=81=E5=AF=BC=E5=85=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...avaformatconfig => .springjavaformatconfig | 0 .../annotation/EnablePigxSwagger2.java | 5 ++- .../SwaggerBeanDefinitionRegistrar.java | 36 +++++++++++++++++++ .../support/SwaggerResourceHandler.java | 2 -- pom.xml | 2 +- 5 files changed, 39 insertions(+), 6 deletions(-) rename .springjavaformatconfig => .springjavaformatconfig (100%) create mode 100644 pigx-common/pigx-common-swagger/src/main/java/com/pig4cloud/pigx/common/swagger/support/SwaggerBeanDefinitionRegistrar.java diff --git a/ .springjavaformatconfig b/.springjavaformatconfig similarity index 100% rename from .springjavaformatconfig rename to .springjavaformatconfig diff --git a/pigx-common/pigx-common-swagger/src/main/java/com/pig4cloud/pigx/common/swagger/annotation/EnablePigxSwagger2.java b/pigx-common/pigx-common-swagger/src/main/java/com/pig4cloud/pigx/common/swagger/annotation/EnablePigxSwagger2.java index afeb53dbf..667801cd2 100644 --- a/pigx-common/pigx-common-swagger/src/main/java/com/pig4cloud/pigx/common/swagger/annotation/EnablePigxSwagger2.java +++ b/pigx-common/pigx-common-swagger/src/main/java/com/pig4cloud/pigx/common/swagger/annotation/EnablePigxSwagger2.java @@ -17,8 +17,7 @@ package com.pig4cloud.pigx.common.swagger.annotation; -import com.pig4cloud.pigx.common.swagger.config.GatewaySwaggerAutoConfiguration; -import com.pig4cloud.pigx.common.swagger.config.SwaggerAutoConfiguration; +import com.pig4cloud.pigx.common.swagger.support.SwaggerBeanDefinitionRegistrar; import com.pig4cloud.pigx.common.swagger.support.SwaggerProperties; import org.springframework.boot.context.properties.EnableConfigurationProperties; import org.springframework.context.annotation.Import; @@ -36,7 +35,7 @@ import java.lang.annotation.*; @Inherited @EnableSwagger2 @EnableConfigurationProperties(SwaggerProperties.class) -@Import({ SwaggerAutoConfiguration.class, GatewaySwaggerAutoConfiguration.class }) +@Import({ SwaggerBeanDefinitionRegistrar.class }) public @interface EnablePigxSwagger2 { } diff --git a/pigx-common/pigx-common-swagger/src/main/java/com/pig4cloud/pigx/common/swagger/support/SwaggerBeanDefinitionRegistrar.java b/pigx-common/pigx-common-swagger/src/main/java/com/pig4cloud/pigx/common/swagger/support/SwaggerBeanDefinitionRegistrar.java new file mode 100644 index 000000000..ded878278 --- /dev/null +++ b/pigx-common/pigx-common-swagger/src/main/java/com/pig4cloud/pigx/common/swagger/support/SwaggerBeanDefinitionRegistrar.java @@ -0,0 +1,36 @@ +package com.pig4cloud.pigx.common.swagger.support; + +import com.pig4cloud.pigx.common.swagger.config.GatewaySwaggerAutoConfiguration; +import com.pig4cloud.pigx.common.swagger.config.SwaggerAutoConfiguration; +import org.springframework.beans.factory.support.BeanDefinitionRegistry; +import org.springframework.beans.factory.support.GenericBeanDefinition; +import org.springframework.context.annotation.ImportBeanDefinitionRegistrar; +import org.springframework.core.type.AnnotationMetadata; + +/** + * @author lengleng + * @date 2022/6/28 + */ +public class SwaggerBeanDefinitionRegistrar implements ImportBeanDefinitionRegistrar { + + /** + * 根据注解值动态注入资源服务器的相关属性 + * @param metadata 注解信息 + * @param registry 注册器 + */ + @Override + public void registerBeanDefinitions(AnnotationMetadata metadata, BeanDefinitionRegistry registry) { + + if (registry.isBeanNameInUse("org.springframework.cloud.gateway.config.GatewayAutoConfiguration")) { + GenericBeanDefinition gatewaySwagger = new GenericBeanDefinition(); + gatewaySwagger.setBeanClass(GatewaySwaggerAutoConfiguration.class); + registry.registerBeanDefinition(GatewaySwaggerAutoConfiguration.class.getSimpleName(), gatewaySwagger); + } + else { + GenericBeanDefinition swaggerAutoConfiguration = new GenericBeanDefinition(); + swaggerAutoConfiguration.setBeanClass(SwaggerAutoConfiguration.class); + registry.registerBeanDefinition(SwaggerAutoConfiguration.class.getSimpleName(), swaggerAutoConfiguration); + } + } + +} diff --git a/pigx-common/pigx-common-swagger/src/main/java/com/pig4cloud/pigx/common/swagger/support/SwaggerResourceHandler.java b/pigx-common/pigx-common-swagger/src/main/java/com/pig4cloud/pigx/common/swagger/support/SwaggerResourceHandler.java index a1212da8f..3bf66df79 100644 --- a/pigx-common/pigx-common-swagger/src/main/java/com/pig4cloud/pigx/common/swagger/support/SwaggerResourceHandler.java +++ b/pigx-common/pigx-common-swagger/src/main/java/com/pig4cloud/pigx/common/swagger/support/SwaggerResourceHandler.java @@ -21,7 +21,6 @@ import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.http.HttpStatus; import org.springframework.http.MediaType; -import org.springframework.stereotype.Component; import org.springframework.web.reactive.function.BodyInserters; import org.springframework.web.reactive.function.server.HandlerFunction; import org.springframework.web.reactive.function.server.ServerRequest; @@ -34,7 +33,6 @@ import springfox.documentation.swagger.web.SwaggerResourcesProvider; * @date 2018-07-19 SwaggerResourceHandler */ @Slf4j -@Component @AllArgsConstructor public class SwaggerResourceHandler implements HandlerFunction { diff --git a/pom.xml b/pom.xml index 8edc1777d..e09179137 100644 --- a/pom.xml +++ b/pom.xml @@ -40,7 +40,7 @@ 1.8 1.8 3.8.1 - 0.0.32 + 0.0.34 2.2.5 2.6.7 1.2.7