From bd0330f372f2110f9514716d08b1b8124c04a9b9 Mon Sep 17 00:00:00 2001 From: khalil Date: Mon, 22 Apr 2024 10:51:46 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BB=A3=E7=A0=81-=E5=8D=87=E7=BA=A7springboot?= =?UTF-8?q?2.7=E5=92=8Cswagger3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../admin/servlet/MyDispatcherServlet.java | 6 -- .../src/main/resources/bootstrap.yaml | 13 ++- .../src/main/resources/bootstrap.yaml | 11 ++- accompany-base/accompany-core/pom.xml | 2 +- .../SwaggerAutoConfiguration.java | 36 ++++++-- .../core/config/WebLocaleConfig.java | 3 +- .../business/config/WebInterceptorConfig.java | 9 +- .../src/main/resources/bootstrap.yaml | 11 ++- accompany-dependencies/pom.xml | 83 ++++++------------- .../src/main/resources/bootstrap.yaml | 11 ++- .../src/main/resources/bootstrap.yaml | 11 ++- pom.xml | 2 +- 12 files changed, 107 insertions(+), 91 deletions(-) diff --git a/accompany-admin/accompany-admin-service/src/main/java/com/accompany/admin/servlet/MyDispatcherServlet.java b/accompany-admin/accompany-admin-service/src/main/java/com/accompany/admin/servlet/MyDispatcherServlet.java index ac90fdbe9..d18204383 100644 --- a/accompany-admin/accompany-admin-service/src/main/java/com/accompany/admin/servlet/MyDispatcherServlet.java +++ b/accompany-admin/accompany-admin-service/src/main/java/com/accompany/admin/servlet/MyDispatcherServlet.java @@ -24,10 +24,4 @@ public class MyDispatcherServlet extends DispatcherServlet { super.doService(request, response); } - @Override - protected void doDispatch(HttpServletRequest request, - HttpServletResponse response) throws Exception { - super.doDispatch(request, response); - } - } diff --git a/accompany-admin/accompany-admin-web/src/main/resources/bootstrap.yaml b/accompany-admin/accompany-admin-web/src/main/resources/bootstrap.yaml index 1516d79e2..dcdc3a076 100644 --- a/accompany-admin/accompany-admin-web/src/main/resources/bootstrap.yaml +++ b/accompany-admin/accompany-admin-web/src/main/resources/bootstrap.yaml @@ -3,6 +3,9 @@ spring: name: admin profiles: active: native + main: + allow-bean-definition-overriding : true + allow-circular-references: true cloud: nacos: config: @@ -14,7 +17,9 @@ spring: refreshable-dataids: application.yml,thirdpart.yml,pay.yml,sysconf.yml,threadpool.yml --- spring: - profiles: dev + config: + activate: + on-profile: dev cloud: nacos: config: @@ -24,11 +29,11 @@ spring: file-extension: yml shared-dataids: application.yml,thirdpart.yml,pay.yml,database.yml,sysconf.yml,threadpool.yml refreshable-dataids: application.yml,thirdpart.yml,pay.yml,database.yml,sysconf.yml,threadpool.yml - jpa: - show-sql: true --- spring: - profiles: prod + config: + activate: + on-profile: prod cloud: nacos: config: diff --git a/accompany-admin/accompany-flow-team-admin-web/src/main/resources/bootstrap.yaml b/accompany-admin/accompany-flow-team-admin-web/src/main/resources/bootstrap.yaml index 32d595044..70e2c3505 100644 --- a/accompany-admin/accompany-flow-team-admin-web/src/main/resources/bootstrap.yaml +++ b/accompany-admin/accompany-flow-team-admin-web/src/main/resources/bootstrap.yaml @@ -3,6 +3,9 @@ spring: name: flow-team-admin profiles: active: native + main: + allow-bean-definition-overriding : true + allow-circular-references: true cloud: nacos: config: @@ -14,7 +17,9 @@ spring: refreshable-dataids: application.yml,thirdpart.yml,pay.yml,sysconf.yml,threadpool.yml --- spring: - profiles: dev + config: + activate: + on-profile: dev cloud: nacos: config: @@ -26,7 +31,9 @@ spring: refreshable-dataids: application.yml,thirdpart.yml,pay.yml,database.yml,sysconf.yml,threadpool.yml --- spring: - profiles: prod + config: + activate: + on-profile: prod cloud: nacos: config: diff --git a/accompany-base/accompany-core/pom.xml b/accompany-base/accompany-core/pom.xml index 5e33682c5..447620ed9 100644 --- a/accompany-base/accompany-core/pom.xml +++ b/accompany-base/accompany-core/pom.xml @@ -116,7 +116,7 @@ org.apache.rocketmq rocketmq-spring-boot-starter - ${rocketmq-spring-boot-starter.version} + ${rocketmq-spring-boot.version} diff --git a/accompany-base/accompany-core/src/main/java/com/accompany/core/autoconfigure/SwaggerAutoConfiguration.java b/accompany-base/accompany-core/src/main/java/com/accompany/core/autoconfigure/SwaggerAutoConfiguration.java index 3650efe04..c6451a6b9 100644 --- a/accompany-base/accompany-core/src/main/java/com/accompany/core/autoconfigure/SwaggerAutoConfiguration.java +++ b/accompany-base/accompany-core/src/main/java/com/accompany/core/autoconfigure/SwaggerAutoConfiguration.java @@ -4,41 +4,50 @@ import com.accompany.common.utils.EnvComponent; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.actuate.autoconfigure.endpoint.web.CorsEndpointProperties; +import org.springframework.boot.actuate.autoconfigure.endpoint.web.WebEndpointProperties; +import org.springframework.boot.actuate.autoconfigure.web.server.ManagementPortType; +import org.springframework.boot.actuate.endpoint.ExposableEndpoint; +import org.springframework.boot.actuate.endpoint.web.*; +import org.springframework.boot.actuate.endpoint.web.annotation.ControllerEndpointsSupplier; +import org.springframework.boot.actuate.endpoint.web.annotation.ServletEndpointsSupplier; +import org.springframework.boot.actuate.endpoint.web.servlet.WebMvcEndpointHandlerMapping; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; +import org.springframework.core.env.Environment; import springfox.documentation.builders.ApiInfoBuilder; import springfox.documentation.builders.ParameterBuilder; import springfox.documentation.builders.RequestHandlerSelectors; +import springfox.documentation.oas.annotations.EnableOpenApi; import springfox.documentation.schema.ModelRef; import springfox.documentation.service.Parameter; import springfox.documentation.spi.DocumentationType; import springfox.documentation.spring.web.plugins.Docket; -import springfox.documentation.swagger2.annotations.EnableSwagger2; import java.util.ArrayList; +import java.util.Collection; import java.util.List; /** * @author linuxea * @date 2019/8/29 14:29 */ -@EnableSwagger2 +@EnableOpenApi @Configuration @Slf4j public class SwaggerAutoConfiguration { @Autowired private EnvComponent envComponent; - + @Bean public Docket swaggerDocket() { Boolean onlineEnv = envComponent.getOnlineEnv(); log.info("[swagger config] 当前是否启用swagger文档地址 {}", !onlineEnv); - return new Docket(DocumentationType.SWAGGER_2) + return new Docket(DocumentationType.OAS_30) .globalOperationParameters(getGlobalOperationParameters()) .select() .apis(RequestHandlerSelectors.basePackage("com.accompany")) - .paths(path -> !StringUtils.contains(path, "/internal/")) .build() .apiInfo(new ApiInfoBuilder().title("peko接口").description("peko业务接口").build()) .enable(!onlineEnv); @@ -54,4 +63,21 @@ public class SwaggerAutoConfiguration { pars.add(parameterBuilder.build()); return pars; } + + @Bean + public WebMvcEndpointHandlerMapping webEndpointServletHandlerMapping(WebEndpointsSupplier webEndpointsSupplier, ServletEndpointsSupplier servletEndpointsSupplier, ControllerEndpointsSupplier controllerEndpointsSupplier, EndpointMediaTypes endpointMediaTypes, CorsEndpointProperties corsProperties, WebEndpointProperties webEndpointProperties, Environment environment) { + List> allEndpoints = new ArrayList(); + Collection webEndpoints = webEndpointsSupplier.getEndpoints(); + allEndpoints.addAll(webEndpoints); + allEndpoints.addAll(servletEndpointsSupplier.getEndpoints()); + allEndpoints.addAll(controllerEndpointsSupplier.getEndpoints()); + String basePath = webEndpointProperties.getBasePath(); + EndpointMapping endpointMapping = new EndpointMapping(basePath); + boolean shouldRegisterLinksMapping = this.shouldRegisterLinksMapping(webEndpointProperties, environment, basePath); + return new WebMvcEndpointHandlerMapping(endpointMapping, webEndpoints, endpointMediaTypes, corsProperties.toCorsConfiguration(), new EndpointLinksResolver(allEndpoints, basePath), shouldRegisterLinksMapping, null); + } + + private boolean shouldRegisterLinksMapping(WebEndpointProperties webEndpointProperties, Environment environment, String basePath) { + return webEndpointProperties.getDiscovery().isEnabled() && (StringUtils.isNotBlank(basePath) || ManagementPortType.get(environment).equals(ManagementPortType.DIFFERENT)); + } } diff --git a/accompany-base/accompany-core/src/main/java/com/accompany/core/config/WebLocaleConfig.java b/accompany-base/accompany-core/src/main/java/com/accompany/core/config/WebLocaleConfig.java index ec2bc71c7..f29b9d854 100644 --- a/accompany-base/accompany-core/src/main/java/com/accompany/core/config/WebLocaleConfig.java +++ b/accompany-base/accompany-core/src/main/java/com/accompany/core/config/WebLocaleConfig.java @@ -3,13 +3,14 @@ package com.accompany.core.config; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.web.servlet.LocaleResolver; +import org.springframework.web.servlet.config.annotation.WebMvcConfigurationSupport; import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; import org.springframework.web.servlet.i18n.AcceptHeaderLocaleResolver; import java.util.*; @Configuration -public class WebLocaleConfig implements WebMvcConfigurer { +public class WebLocaleConfig extends WebMvcConfigurationSupport { public static Locale Chinese = Locale.CHINESE; public static Locale English = Locale.ENGLISH; diff --git a/accompany-business/accompany-business-web/src/main/java/com/accompany/business/config/WebInterceptorConfig.java b/accompany-business/accompany-business-web/src/main/java/com/accompany/business/config/WebInterceptorConfig.java index f8ed806e3..ad09cdf94 100644 --- a/accompany-business/accompany-business-web/src/main/java/com/accompany/business/config/WebInterceptorConfig.java +++ b/accompany-business/accompany-business-web/src/main/java/com/accompany/business/config/WebInterceptorConfig.java @@ -3,13 +3,10 @@ package com.accompany.business.config; import com.accompany.business.interceptor.*; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; -import org.springframework.web.servlet.config.annotation.CorsRegistry; -import org.springframework.web.servlet.config.annotation.InterceptorRegistry; -import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry; -import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; +import org.springframework.web.servlet.config.annotation.*; @Configuration -public class WebInterceptorConfig implements WebMvcConfigurer { +public class WebInterceptorConfig extends WebMvcConfigurationSupport { /** * 自己定义的拦截器类 @@ -81,7 +78,7 @@ public class WebInterceptorConfig implements WebMvcConfigurer { public void addResourceHandlers(ResourceHandlerRegistry registry) { registry.addResourceHandler("/**").addResourceLocations( "classpath:/static/"); - registry.addResourceHandler("swagger-ui.html").addResourceLocations( + registry.addResourceHandler("swagger-ui.html", "doc.html").addResourceLocations( "classpath:/META-INF/resources/"); registry.addResourceHandler("/webjars/**").addResourceLocations( "classpath:/META-INF/resources/webjars/"); diff --git a/accompany-business/accompany-business-web/src/main/resources/bootstrap.yaml b/accompany-business/accompany-business-web/src/main/resources/bootstrap.yaml index 9af95280f..c0df9baaf 100644 --- a/accompany-business/accompany-business-web/src/main/resources/bootstrap.yaml +++ b/accompany-business/accompany-business-web/src/main/resources/bootstrap.yaml @@ -3,6 +3,9 @@ spring: name: web profiles: active: native + main: + allow-bean-definition-overriding : true + allow-circular-references: true cloud: nacos: config: @@ -14,7 +17,9 @@ spring: refreshable-dataids: application.yml,thirdpart.yml,pay.yml,sysconf.yml,threadpool.yml --- spring: - profiles: dev + config: + activate: + on-profile: dev cloud: nacos: config: @@ -26,7 +31,9 @@ spring: refreshable-dataids: application.yml,thirdpart.yml,pay.yml,database.yml,sysconf.yml,threadpool.yml --- spring: - profiles: prod + config: + activate: + on-profile: prod cloud: nacos: config: diff --git a/accompany-dependencies/pom.xml b/accompany-dependencies/pom.xml index 9a2d327b8..bf3567e20 100644 --- a/accompany-dependencies/pom.xml +++ b/accompany-dependencies/pom.xml @@ -20,9 +20,10 @@ 11 ${basedir}/target + 2021.0.5 + 3.1.8 3.9.0 3.1 - 3.2.9.RELEASE 3.2.5.RELEASE 8.0.17 3.1.0 @@ -31,11 +32,10 @@ 1.2.83 4.12 3.12.0 - Hoxton.SR12 7.14.0 0.2.2.RELEASE - 3.10.0 - 2.9.2 + 4.12.0 + 3.0.0 0.1.10 3.0.0 4.1.2 @@ -56,7 +56,6 @@ 2.4.2 1.9.13 5.1.8 - 3.15 1.10.2 2.0.1.Final 1.1.0 @@ -75,7 +74,6 @@ 8.12.43 2.7.0 1.7.2 - 2.2.3 5.8.27 1.5.0 3.7.110.ALL @@ -107,6 +105,12 @@ import + + org.springframework.cloud + spring-cloud-starter-bootstrap + ${spring-cloud-starter-bootstrap.version} + + org.springframework.cloud spring-cloud-starter-alibaba-nacos-config @@ -134,7 +138,7 @@ org.apache.rocketmq rocketmq-spring-boot-starter - ${rocketmq-spring-boot-starter.version} + ${rocketmq-spring-boot.version} @@ -241,20 +245,8 @@ io.springfox - springfox-swagger2 - ${swagger2.version} - - - - io.springfox - springfox-bean-validators - ${swagger2.version} - - - - io.springfox - springfox-swagger-ui - ${swagger2.version} + springfox-boot-starter + ${swagger3.version} @@ -366,24 +358,6 @@ ${commons-fileupload.version} - - org.apache.poi - poi-ooxml - ${poi.version} - - - - org.apache.poi - poi-ooxml-schemas - ${poi.version} - - - - org.apache.poi - poi - ${poi.version} - - net.sf.jxls jxls-core @@ -487,6 +461,12 @@ + + org.springframework.cloud + spring-cloud-starter-bootstrap + ${spring-cloud-starter-bootstrap.version} + + org.springframework.boot spring-boot-autoconfigure @@ -497,6 +477,11 @@ fastjson + + io.springfox + springfox-boot-starter + + commons-collections commons-collections @@ -512,11 +497,6 @@ lombok - - org.springframework - spring-context-support - - org.yaml snakeyaml @@ -722,21 +702,6 @@ logging-interceptor - - io.springfox - springfox-swagger2 - - - - io.springfox - springfox-swagger-ui - - - - io.springfox - springfox-bean-validators - - tech.sud.mgp.auth sud-mgp-auth-java diff --git a/accompany-oauth2/accompany-oauth2-web/src/main/resources/bootstrap.yaml b/accompany-oauth2/accompany-oauth2-web/src/main/resources/bootstrap.yaml index 8ac3e5c13..2a7134693 100644 --- a/accompany-oauth2/accompany-oauth2-web/src/main/resources/bootstrap.yaml +++ b/accompany-oauth2/accompany-oauth2-web/src/main/resources/bootstrap.yaml @@ -3,6 +3,9 @@ spring: name: oauth2 profiles: active: native + main: + allow-bean-definition-overriding : true + allow-circular-references: true cloud: nacos: config: @@ -14,7 +17,9 @@ spring: refreshable-dataids: application.yml,thirdpart.yml,pay.yml,sysconf.yml,threadpool.yml --- spring: - profiles: dev + config: + activate: + on-profile: dev cloud: nacos: config: @@ -26,7 +31,9 @@ spring: refreshable-dataids: application.yml,thirdpart.yml,pay.yml,database.yml,sysconf.yml,threadpool.yml --- spring: - profiles: prod + config: + activate: + on-profile: prod cloud: nacos: config: diff --git a/accompany-scheduler/accompany-scheduler-web/src/main/resources/bootstrap.yaml b/accompany-scheduler/accompany-scheduler-web/src/main/resources/bootstrap.yaml index ccd5cc6b8..4b635c975 100644 --- a/accompany-scheduler/accompany-scheduler-web/src/main/resources/bootstrap.yaml +++ b/accompany-scheduler/accompany-scheduler-web/src/main/resources/bootstrap.yaml @@ -3,6 +3,9 @@ spring: name: scheduler profiles: active: native + main: + allow-bean-definition-overriding : true + allow-circular-references: true cloud: nacos: config: @@ -14,7 +17,9 @@ spring: refreshable-dataids: application.yml,thirdpart.yml,pay.yml,sysconf.yml,threadpool.yml --- spring: - profiles: dev + config: + activate: + on-profile: dev cloud: nacos: config: @@ -26,7 +31,9 @@ spring: refreshable-dataids: application.yml,thirdpart.yml,pay.yml,database.yml,sysconf.yml,threadpool.yml --- spring: - profiles: prod + config: + activate: + on-profile: prod cloud: nacos: config: diff --git a/pom.xml b/pom.xml index 20e8bcdf2..b0ad0842b 100644 --- a/pom.xml +++ b/pom.xml @@ -23,7 +23,7 @@ org.springframework.boot spring-boot-starter-parent - 2.3.12.RELEASE + 2.7.18