From 6053a3f0ec495f8685e65a1aea4348c0ff765b2c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=95=B4=E6=B4=81=E6=9E=B6=E6=9E=84?= Date: Wed, 12 Jun 2024 23:17:25 +0800 Subject: [PATCH] =?UTF-8?q?=E5=8D=87=E7=BA=A7springboot=E7=89=88=E6=9C=AC?= =?UTF-8?q?=E8=87=B32.6.16=20=E5=8D=87=E7=BA=A7springcloud=20alibaba?= =?UTF-8?q?=E7=89=88=E6=9C=AC=E8=87=B32021.0.5.0=20=E5=8D=87=E7=BA=A7sprin?= =?UTF-8?q?gcloud=E7=89=88=E6=9C=AC=E8=87=B32021.0.5=20=E7=A7=BB=E9=99=A4r?= =?UTF-8?q?ibbon,=E4=BD=BF=E7=94=A8spring=20cloud=20loadbalancer?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- doc/docs/files/10011_项目接入到SOP.md | 6 +- pom.xml | 50 +++-- .../sop/adminserver/entity/AdminUserInfo.java | 12 +- .../sop/adminserver/entity/ConfigCommon.java | 12 +- .../sop/adminserver/entity/ConfigGray.java | 12 +- .../entity/ConfigGrayInstance.java | 12 +- .../adminserver/entity/ConfigIpBlacklist.java | 12 +- .../sop/adminserver/entity/ConfigLimit.java | 12 +- .../adminserver/entity/ConfigRouteBase.java | 12 +- .../entity/ConfigServiceRoute.java | 12 +- .../sop/adminserver/entity/IspResource.java | 12 +- .../gitee/sop/adminserver/entity/IsvInfo.java | 12 +- .../gitee/sop/adminserver/entity/IsvKeys.java | 12 +- .../sop/adminserver/entity/MonitorInfo.java | 12 +- .../adminserver/entity/MonitorInfoError.java | 12 +- .../adminserver/entity/MonitorSummary.java | 7 +- .../sop/adminserver/entity/PermIsvRole.java | 12 +- .../sop/adminserver/entity/PermRole.java | 12 +- .../entity/PermRolePermission.java | 12 +- .../impl/RegistryServiceNacosImpl.java | 3 +- .../com/gitee/sop/sopauth/entity/IsvInfo.java | 12 +- .../gitee/sop/sopauth/entity/UserInfo.java | 12 +- sop-common/pom.xml | 1 - sop-common/sop-bridge-eureka/pom.xml | 1 + sop-common/sop-bridge-nacos/pom.xml | 10 +- .../bridge/route/NacosRegistryListener.java | 5 +- sop-common/sop-gateway-common/pom.xml | 23 ++- .../gatewaycommon/bean/ServiceDefinition.java | 3 - .../config/AbstractConfiguration.java | 28 +-- .../config/SopGatewayAutoConfiguration.java | 3 - .../BaseGatewayConfiguration.java | 29 +-- .../gateway/controller/RestfulController.java | 19 +- .../filter/SopLoadBalancerClientFilter.java | 36 ---- .../GatewayLoadBalanceServerChooser.java | 29 --- .../loadbalancer/NacosServerIntrospector.java | 23 --- .../loadbalancer/SopLoadBalancerClient.java | 87 --------- .../loadbalancer/GrayLoadBalancer.java | 179 ++++++++++++++++++ .../loadbalancer/GrayLoadBalancerConfig.java | 18 ++ .../LoadBalanceServerChooser.java | 128 ------------- .../loadbalancer/ServerChooserContext.java | 35 ---- .../manager/DefaultIPBlacklistManager.java | 2 +- .../manager/DefaultLimitConfigManager.java | 2 +- .../route/BaseRegistryListener.java | 3 +- .../route/ServiceRouteListener.java | 2 +- .../sop/gatewaycommon/util/RequestUtil.java | 2 +- sop-common/sop-service-common/pom.xml | 14 +- .../configuration/ServiceConfiguration.java | 2 +- .../swagger/CustomModelToSwaggerMapper.java | 20 -- .../CustomSwaggerParameterBuilder.java | 6 +- .../DocumentationPluginsManagerExt.java | 6 +- .../servercommon/swagger/SwaggerSupport.java | 6 - sop-example/sop-springmvc/pom.xml | 7 - .../gitee/app/config/OpenServiceConfig.java | 2 +- sop-example/sop-story/pom.xml | 12 +- .../controller/param/CategoryParam.java | 1 + .../src/main/resources/application.properties | 3 +- .../sop/gateway/SopGatewayApplication.java | 4 + .../gitee/sop/gateway/config/MyConfig.java | 2 +- .../gitee/sop/gateway/entity/ConfigGray.java | 12 +- .../gateway/entity/ConfigGrayInstance.java | 12 +- .../gitee/sop/gateway/entity/ConfigLimit.java | 12 +- .../sop/gateway/entity/ConfigRouteBase.java | 12 +- .../gateway/entity/ConfigServiceRoute.java | 12 +- .../com/gitee/sop/gateway/entity/IsvInfo.java | 12 +- .../gitee/sop/gateway/entity/MonitorInfo.java | 12 +- .../sop/gateway/entity/MonitorInfoError.java | 12 +- .../gitee/sop/gateway/entity/PermIsvRole.java | 12 +- .../gateway/entity/PermRolePermission.java | 12 +- .../MonitorRouteInterceptorService.java | 2 +- .../DbMonitorInfoManager.java | 4 +- .../com/gitee/sop/gateway/ExcludeTest.java | 44 ++--- .../sop/websiteserver/bean/DocParameter.java | 2 +- .../sop/websiteserver/bean/Validates.java | 2 +- .../websiteserver/config/WebsiteConfig.java | 6 +- .../sop/websiteserver/entity/IspResource.java | 12 +- .../sop/websiteserver/entity/IsvInfo.java | 12 +- .../sop/websiteserver/entity/IsvKeys.java | 12 +- .../sop/websiteserver/entity/UserAccount.java | 12 +- .../listener/ServiceDocListener.java | 2 +- .../manager/SwaggerDocParser.java | 2 +- 80 files changed, 445 insertions(+), 822 deletions(-) delete mode 100644 sop-common/sop-gateway-common/src/main/java/com/gitee/sop/gatewaycommon/gateway/filter/SopLoadBalancerClientFilter.java delete mode 100644 sop-common/sop-gateway-common/src/main/java/com/gitee/sop/gatewaycommon/gateway/loadbalancer/GatewayLoadBalanceServerChooser.java delete mode 100644 sop-common/sop-gateway-common/src/main/java/com/gitee/sop/gatewaycommon/gateway/loadbalancer/NacosServerIntrospector.java delete mode 100644 sop-common/sop-gateway-common/src/main/java/com/gitee/sop/gatewaycommon/gateway/loadbalancer/SopLoadBalancerClient.java create mode 100644 sop-common/sop-gateway-common/src/main/java/com/gitee/sop/gatewaycommon/loadbalancer/GrayLoadBalancer.java create mode 100644 sop-common/sop-gateway-common/src/main/java/com/gitee/sop/gatewaycommon/loadbalancer/GrayLoadBalancerConfig.java delete mode 100644 sop-common/sop-gateway-common/src/main/java/com/gitee/sop/gatewaycommon/loadbalancer/LoadBalanceServerChooser.java delete mode 100644 sop-common/sop-gateway-common/src/main/java/com/gitee/sop/gatewaycommon/loadbalancer/ServerChooserContext.java delete mode 100644 sop-common/sop-service-common/src/main/java/com/gitee/sop/servercommon/swagger/CustomModelToSwaggerMapper.java rename sop-gateway/src/main/java/com/gitee/sop/gateway/{mapper => manager}/DbMonitorInfoManager.java (93%) diff --git a/doc/docs/files/10011_项目接入到SOP.md b/doc/docs/files/10011_项目接入到SOP.md index 7f4e5e18..cc8826e0 100644 --- a/doc/docs/files/10011_项目接入到SOP.md +++ b/doc/docs/files/10011_项目接入到SOP.md @@ -6,12 +6,12 @@ ```xml -2.3.2.RELEASE +2.6.15 -Hoxton.SR8 +2021.0.5 -2.2.5.RELEASE +2021.0.5.0 ``` - pom.xml添加``控制版本 diff --git a/pom.xml b/pom.xml index 0c4069c7..1f43e5a0 100644 --- a/pom.xml +++ b/pom.xml @@ -5,7 +5,7 @@ org.springframework.boot spring-boot-starter-parent - 2.3.2.RELEASE + 2.6.15 4.0.0 @@ -35,12 +35,12 @@ 1.8 - 2.3.2.RELEASE + 2.6.15 - Hoxton.SR8 + 2021.0.5 - 2.2.5.RELEASE + 2021.0.5.0 @@ -58,11 +58,12 @@ 1.2 2.0.1.Final 6.0.13.Final - 1.9.1 + 2.4.8 + 3.5.3.1 29.0-jre + 3.0.2 1.5.21 - 2.9.2 - 2.9.2 + 3.0.0 1.16.9 6.2 5.2.0 @@ -110,21 +111,36 @@ fastmybatis-spring-boot-starter ${fastmybatis.version} - - io.springfox - springfox-spring-web - ${springfox-spring-web.version} - - - io.swagger - swagger-annotations - ${swagger.version} + com.baomidou + mybatis-plus-boot-starter + ${mybatis-plus.version} io.springfox springfox-swagger2 - ${springfox-swagger2.version} + ${springfox.version} + + + io.springfox + springfox-spring-web + ${springfox.version} + + + io.springfox + springfox-swagger-ui + ${springfox.version} + + + io.springfox + springfox-boot-starter + ${springfox.version} + + + + com.github.xiaoymin + knife4j-spring-boot-starter + ${knife4j.version} diff --git a/sop-admin/sop-admin-server/src/main/java/com/gitee/sop/adminserver/entity/AdminUserInfo.java b/sop-admin/sop-admin-server/src/main/java/com/gitee/sop/adminserver/entity/AdminUserInfo.java index 17c99007..7ae6261b 100644 --- a/sop-admin/sop-admin-server/src/main/java/com/gitee/sop/adminserver/entity/AdminUserInfo.java +++ b/sop-admin/sop-admin-server/src/main/java/com/gitee/sop/adminserver/entity/AdminUserInfo.java @@ -2,11 +2,8 @@ package com.gitee.sop.adminserver.entity; import lombok.Data; -import javax.persistence.Column; -import javax.persistence.GeneratedValue; -import javax.persistence.GenerationType; -import javax.persistence.Id; -import javax.persistence.Table; +import com.gitee.fastmybatis.annotation.Pk; +import com.gitee.fastmybatis.annotation.Table; import java.io.Serializable; import java.util.Date; @@ -17,12 +14,9 @@ import java.util.Date; * * @author tanghc */ -@Table(name = "admin_user_info") +@Table(name = "admin_user_info",pk = @Pk(name = "id")) @Data public class AdminUserInfo implements Serializable { - @Id - @Column(name = "id") - @GeneratedValue(strategy = GenerationType.IDENTITY) /** 数据库字段:id */ private Long id; diff --git a/sop-admin/sop-admin-server/src/main/java/com/gitee/sop/adminserver/entity/ConfigCommon.java b/sop-admin/sop-admin-server/src/main/java/com/gitee/sop/adminserver/entity/ConfigCommon.java index cf85d185..a9f2d558 100644 --- a/sop-admin/sop-admin-server/src/main/java/com/gitee/sop/adminserver/entity/ConfigCommon.java +++ b/sop-admin/sop-admin-server/src/main/java/com/gitee/sop/adminserver/entity/ConfigCommon.java @@ -2,11 +2,8 @@ package com.gitee.sop.adminserver.entity; import lombok.Data; -import javax.persistence.Column; -import javax.persistence.GeneratedValue; -import javax.persistence.GenerationType; -import javax.persistence.Id; -import javax.persistence.Table; +import com.gitee.fastmybatis.annotation.Pk; +import com.gitee.fastmybatis.annotation.Table; import java.util.Date; @@ -16,12 +13,9 @@ import java.util.Date; * * @author tanghc */ -@Table(name = "config_common") +@Table(name = "config_common",pk = @Pk(name = "id")) @Data public class ConfigCommon { - @Id - @Column(name = "id") - @GeneratedValue(strategy = GenerationType.IDENTITY) /** 数据库字段:id */ private Long id; diff --git a/sop-admin/sop-admin-server/src/main/java/com/gitee/sop/adminserver/entity/ConfigGray.java b/sop-admin/sop-admin-server/src/main/java/com/gitee/sop/adminserver/entity/ConfigGray.java index cc89f3e6..9f40a128 100644 --- a/sop-admin/sop-admin-server/src/main/java/com/gitee/sop/adminserver/entity/ConfigGray.java +++ b/sop-admin/sop-admin-server/src/main/java/com/gitee/sop/adminserver/entity/ConfigGray.java @@ -2,11 +2,8 @@ package com.gitee.sop.adminserver.entity; import lombok.Data; -import javax.persistence.Column; -import javax.persistence.GeneratedValue; -import javax.persistence.GenerationType; -import javax.persistence.Id; -import javax.persistence.Table; +import com.gitee.fastmybatis.annotation.Pk; +import com.gitee.fastmybatis.annotation.Table; import java.util.Date; @@ -16,12 +13,9 @@ import java.util.Date; * * @author tanghc */ -@Table(name = "config_gray") +@Table(name = "config_gray",pk = @Pk(name = "id")) @Data public class ConfigGray { - @Id - @Column(name = "id") - @GeneratedValue(strategy = GenerationType.IDENTITY) /** 数据库字段:id */ private Long id; diff --git a/sop-admin/sop-admin-server/src/main/java/com/gitee/sop/adminserver/entity/ConfigGrayInstance.java b/sop-admin/sop-admin-server/src/main/java/com/gitee/sop/adminserver/entity/ConfigGrayInstance.java index 171ba599..ada31ccd 100644 --- a/sop-admin/sop-admin-server/src/main/java/com/gitee/sop/adminserver/entity/ConfigGrayInstance.java +++ b/sop-admin/sop-admin-server/src/main/java/com/gitee/sop/adminserver/entity/ConfigGrayInstance.java @@ -2,11 +2,8 @@ package com.gitee.sop.adminserver.entity; import lombok.Data; -import javax.persistence.Column; -import javax.persistence.GeneratedValue; -import javax.persistence.GenerationType; -import javax.persistence.Id; -import javax.persistence.Table; +import com.gitee.fastmybatis.annotation.Pk; +import com.gitee.fastmybatis.annotation.Table; import java.util.Date; @@ -15,12 +12,9 @@ import java.util.Date; * * @author tanghc */ -@Table(name = "config_gray_instance") +@Table(name = "config_gray_instance",pk = @Pk(name = "id")) @Data public class ConfigGrayInstance { - @Id - @Column(name = "id") - @GeneratedValue(strategy = GenerationType.IDENTITY) /** 数据库字段:id */ private Long id; diff --git a/sop-admin/sop-admin-server/src/main/java/com/gitee/sop/adminserver/entity/ConfigIpBlacklist.java b/sop-admin/sop-admin-server/src/main/java/com/gitee/sop/adminserver/entity/ConfigIpBlacklist.java index 4da5cf8a..1c576bc5 100644 --- a/sop-admin/sop-admin-server/src/main/java/com/gitee/sop/adminserver/entity/ConfigIpBlacklist.java +++ b/sop-admin/sop-admin-server/src/main/java/com/gitee/sop/adminserver/entity/ConfigIpBlacklist.java @@ -2,11 +2,8 @@ package com.gitee.sop.adminserver.entity; import lombok.Data; -import javax.persistence.Column; -import javax.persistence.GeneratedValue; -import javax.persistence.GenerationType; -import javax.persistence.Id; -import javax.persistence.Table; +import com.gitee.fastmybatis.annotation.Pk; +import com.gitee.fastmybatis.annotation.Table; import java.util.Date; @@ -16,12 +13,9 @@ import java.util.Date; * * @author tanghc */ -@Table(name = "config_ip_blacklist") +@Table(name = "config_ip_blacklist",pk = @Pk(name = "id")) @Data public class ConfigIpBlacklist { - @Id - @Column(name = "id") - @GeneratedValue(strategy = GenerationType.IDENTITY) /** 数据库字段:id */ private Long id; diff --git a/sop-admin/sop-admin-server/src/main/java/com/gitee/sop/adminserver/entity/ConfigLimit.java b/sop-admin/sop-admin-server/src/main/java/com/gitee/sop/adminserver/entity/ConfigLimit.java index 0a7b60f0..735a20ba 100644 --- a/sop-admin/sop-admin-server/src/main/java/com/gitee/sop/adminserver/entity/ConfigLimit.java +++ b/sop-admin/sop-admin-server/src/main/java/com/gitee/sop/adminserver/entity/ConfigLimit.java @@ -2,11 +2,8 @@ package com.gitee.sop.adminserver.entity; import lombok.Data; -import javax.persistence.Column; -import javax.persistence.GeneratedValue; -import javax.persistence.GenerationType; -import javax.persistence.Id; -import javax.persistence.Table; +import com.gitee.fastmybatis.annotation.Pk; +import com.gitee.fastmybatis.annotation.Table; import java.util.Date; @@ -16,12 +13,9 @@ import java.util.Date; * * @author tanghc */ -@Table(name = "config_limit") +@Table(name = "config_limit",pk = @Pk(name = "id")) @Data public class ConfigLimit { - @Id - @Column(name = "id") - @GeneratedValue(strategy = GenerationType.IDENTITY) /** 数据库字段:id */ private Long id; diff --git a/sop-admin/sop-admin-server/src/main/java/com/gitee/sop/adminserver/entity/ConfigRouteBase.java b/sop-admin/sop-admin-server/src/main/java/com/gitee/sop/adminserver/entity/ConfigRouteBase.java index 9c1d1254..73a21d0e 100644 --- a/sop-admin/sop-admin-server/src/main/java/com/gitee/sop/adminserver/entity/ConfigRouteBase.java +++ b/sop-admin/sop-admin-server/src/main/java/com/gitee/sop/adminserver/entity/ConfigRouteBase.java @@ -4,11 +4,8 @@ import lombok.Data; import java.util.Date; -import javax.persistence.Column; -import javax.persistence.GeneratedValue; -import javax.persistence.GenerationType; -import javax.persistence.Id; -import javax.persistence.Table; +import com.gitee.fastmybatis.annotation.Pk; +import com.gitee.fastmybatis.annotation.Table; /** @@ -17,12 +14,9 @@ import javax.persistence.Table; * * @author tanghc */ -@Table(name = "config_route_base") +@Table(name = "config_route_base",pk = @Pk(name = "id")) @Data public class ConfigRouteBase { - @Id - @Column(name = "id") - @GeneratedValue(strategy = GenerationType.IDENTITY) /** 数据库字段:id */ private Long id; diff --git a/sop-admin/sop-admin-server/src/main/java/com/gitee/sop/adminserver/entity/ConfigServiceRoute.java b/sop-admin/sop-admin-server/src/main/java/com/gitee/sop/adminserver/entity/ConfigServiceRoute.java index 30b817af..53da7c3e 100644 --- a/sop-admin/sop-admin-server/src/main/java/com/gitee/sop/adminserver/entity/ConfigServiceRoute.java +++ b/sop-admin/sop-admin-server/src/main/java/com/gitee/sop/adminserver/entity/ConfigServiceRoute.java @@ -2,11 +2,8 @@ package com.gitee.sop.adminserver.entity; import lombok.Data; -import javax.persistence.Column; -import javax.persistence.GeneratedValue; -import javax.persistence.GenerationType; -import javax.persistence.Id; -import javax.persistence.Table; +import com.gitee.fastmybatis.annotation.Pk; +import com.gitee.fastmybatis.annotation.Table; import java.util.Date; @@ -16,12 +13,9 @@ import java.util.Date; * * @author tanghc */ -@Table(name = "config_service_route") +@Table(name = "config_service_route",pk = @Pk(name = "id")) @Data public class ConfigServiceRoute { - @Id - @Column(name = "id") - @GeneratedValue(strategy = GenerationType.AUTO) /** 数据库字段:id */ private String id; diff --git a/sop-admin/sop-admin-server/src/main/java/com/gitee/sop/adminserver/entity/IspResource.java b/sop-admin/sop-admin-server/src/main/java/com/gitee/sop/adminserver/entity/IspResource.java index 021f3e5d..ad6491eb 100644 --- a/sop-admin/sop-admin-server/src/main/java/com/gitee/sop/adminserver/entity/IspResource.java +++ b/sop-admin/sop-admin-server/src/main/java/com/gitee/sop/adminserver/entity/IspResource.java @@ -2,11 +2,8 @@ package com.gitee.sop.adminserver.entity; import lombok.Data; -import javax.persistence.Column; -import javax.persistence.GeneratedValue; -import javax.persistence.GenerationType; -import javax.persistence.Id; -import javax.persistence.Table; +import com.gitee.fastmybatis.annotation.Pk; +import com.gitee.fastmybatis.annotation.Table; import java.util.Date; @@ -16,13 +13,10 @@ import java.util.Date; * * @author tanghc */ -@Table(name = "isp_resource") +@Table(name = "isp_resource",pk = @Pk(name = "id")) @Data public class IspResource { /** 数据库字段:id */ - @Id - @Column(name = "id") - @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; /** 资源名称, 数据库字段:name */ diff --git a/sop-admin/sop-admin-server/src/main/java/com/gitee/sop/adminserver/entity/IsvInfo.java b/sop-admin/sop-admin-server/src/main/java/com/gitee/sop/adminserver/entity/IsvInfo.java index d44330a4..8017e947 100644 --- a/sop-admin/sop-admin-server/src/main/java/com/gitee/sop/adminserver/entity/IsvInfo.java +++ b/sop-admin/sop-admin-server/src/main/java/com/gitee/sop/adminserver/entity/IsvInfo.java @@ -2,11 +2,8 @@ package com.gitee.sop.adminserver.entity; import lombok.Data; -import javax.persistence.Column; -import javax.persistence.GeneratedValue; -import javax.persistence.GenerationType; -import javax.persistence.Id; -import javax.persistence.Table; +import com.gitee.fastmybatis.annotation.Pk; +import com.gitee.fastmybatis.annotation.Table; import java.util.Date; @@ -16,12 +13,9 @@ import java.util.Date; * * @author tanghc */ -@Table(name = "isv_info") +@Table(name = "isv_info",pk = @Pk(name = "id")) @Data public class IsvInfo { - @Id - @Column(name = "id") - @GeneratedValue(strategy = GenerationType.IDENTITY) /** 数据库字段:id */ private Long id; diff --git a/sop-admin/sop-admin-server/src/main/java/com/gitee/sop/adminserver/entity/IsvKeys.java b/sop-admin/sop-admin-server/src/main/java/com/gitee/sop/adminserver/entity/IsvKeys.java index 03989420..3841fc22 100644 --- a/sop-admin/sop-admin-server/src/main/java/com/gitee/sop/adminserver/entity/IsvKeys.java +++ b/sop-admin/sop-admin-server/src/main/java/com/gitee/sop/adminserver/entity/IsvKeys.java @@ -2,11 +2,8 @@ package com.gitee.sop.adminserver.entity; import lombok.Data; -import javax.persistence.Column; -import javax.persistence.GeneratedValue; -import javax.persistence.GenerationType; -import javax.persistence.Id; -import javax.persistence.Table; +import com.gitee.fastmybatis.annotation.Pk; +import com.gitee.fastmybatis.annotation.Table; import java.util.Date; @@ -16,12 +13,9 @@ import java.util.Date; * * @author tanghc */ -@Table(name = "isv_keys") +@Table(name = "isv_keys",pk = @Pk(name = "id")) @Data public class IsvKeys { - @Id - @Column(name = "id") - @GeneratedValue(strategy = GenerationType.IDENTITY) /** 数据库字段:id */ private Long id; diff --git a/sop-admin/sop-admin-server/src/main/java/com/gitee/sop/adminserver/entity/MonitorInfo.java b/sop-admin/sop-admin-server/src/main/java/com/gitee/sop/adminserver/entity/MonitorInfo.java index 5b721309..ecc900be 100644 --- a/sop-admin/sop-admin-server/src/main/java/com/gitee/sop/adminserver/entity/MonitorInfo.java +++ b/sop-admin/sop-admin-server/src/main/java/com/gitee/sop/adminserver/entity/MonitorInfo.java @@ -2,11 +2,8 @@ package com.gitee.sop.adminserver.entity; import lombok.Data; -import javax.persistence.Column; -import javax.persistence.GeneratedValue; -import javax.persistence.GenerationType; -import javax.persistence.Id; -import javax.persistence.Table; +import com.gitee.fastmybatis.annotation.Pk; +import com.gitee.fastmybatis.annotation.Table; import java.util.Date; @@ -16,13 +13,10 @@ import java.util.Date; * * @author tanghc */ -@Table(name = "monitor_info") +@Table(name = "monitor_info",pk = @Pk(name = "id")) @Data public class MonitorInfo { /** 数据库字段:id */ - @Id - @Column(name = "id") - @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; /** 路由id, 数据库字段:route_id */ diff --git a/sop-admin/sop-admin-server/src/main/java/com/gitee/sop/adminserver/entity/MonitorInfoError.java b/sop-admin/sop-admin-server/src/main/java/com/gitee/sop/adminserver/entity/MonitorInfoError.java index 69dcba9e..982f7309 100644 --- a/sop-admin/sop-admin-server/src/main/java/com/gitee/sop/adminserver/entity/MonitorInfoError.java +++ b/sop-admin/sop-admin-server/src/main/java/com/gitee/sop/adminserver/entity/MonitorInfoError.java @@ -2,11 +2,8 @@ package com.gitee.sop.adminserver.entity; import lombok.Data; -import javax.persistence.Column; -import javax.persistence.GeneratedValue; -import javax.persistence.GenerationType; -import javax.persistence.Id; -import javax.persistence.Table; +import com.gitee.fastmybatis.annotation.Pk; +import com.gitee.fastmybatis.annotation.Table; import java.util.Date; @@ -15,13 +12,10 @@ import java.util.Date; * * @author tanghc */ -@Table(name = "monitor_info_error") +@Table(name = "monitor_info_error",pk = @Pk(name = "id")) @Data public class MonitorInfoError { /** 数据库字段:id */ - @Id - @Column(name = "id") - @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; /** 错误id,md5Hex(instanceId + routeId + errorMsg), 数据库字段:error_id */ diff --git a/sop-admin/sop-admin-server/src/main/java/com/gitee/sop/adminserver/entity/MonitorSummary.java b/sop-admin/sop-admin-server/src/main/java/com/gitee/sop/adminserver/entity/MonitorSummary.java index 3df26d02..ec528b94 100644 --- a/sop-admin/sop-admin-server/src/main/java/com/gitee/sop/adminserver/entity/MonitorSummary.java +++ b/sop-admin/sop-admin-server/src/main/java/com/gitee/sop/adminserver/entity/MonitorSummary.java @@ -2,11 +2,8 @@ package com.gitee.sop.adminserver.entity; import lombok.Data; -import javax.persistence.Column; -import javax.persistence.GeneratedValue; -import javax.persistence.GenerationType; -import javax.persistence.Id; -import javax.persistence.Table; +import com.gitee.fastmybatis.annotation.Pk; +import com.gitee.fastmybatis.annotation.Table; import java.util.Collections; import java.util.Date; import java.util.List; diff --git a/sop-admin/sop-admin-server/src/main/java/com/gitee/sop/adminserver/entity/PermIsvRole.java b/sop-admin/sop-admin-server/src/main/java/com/gitee/sop/adminserver/entity/PermIsvRole.java index 77630e61..b7d268e4 100644 --- a/sop-admin/sop-admin-server/src/main/java/com/gitee/sop/adminserver/entity/PermIsvRole.java +++ b/sop-admin/sop-admin-server/src/main/java/com/gitee/sop/adminserver/entity/PermIsvRole.java @@ -4,11 +4,8 @@ import lombok.Data; import java.util.Date; -import javax.persistence.Column; -import javax.persistence.GeneratedValue; -import javax.persistence.GenerationType; -import javax.persistence.Id; -import javax.persistence.Table; +import com.gitee.fastmybatis.annotation.Pk; +import com.gitee.fastmybatis.annotation.Table; /** @@ -17,12 +14,9 @@ import javax.persistence.Table; * * @author tanghc */ -@Table(name = "perm_isv_role") +@Table(name = "perm_isv_role",pk = @Pk(name = "id")) @Data public class PermIsvRole { - @Id - @Column(name = "id") - @GeneratedValue(strategy = GenerationType.IDENTITY) /** 数据库字段:id */ private Long id; diff --git a/sop-admin/sop-admin-server/src/main/java/com/gitee/sop/adminserver/entity/PermRole.java b/sop-admin/sop-admin-server/src/main/java/com/gitee/sop/adminserver/entity/PermRole.java index f8d502b3..e8492994 100644 --- a/sop-admin/sop-admin-server/src/main/java/com/gitee/sop/adminserver/entity/PermRole.java +++ b/sop-admin/sop-admin-server/src/main/java/com/gitee/sop/adminserver/entity/PermRole.java @@ -4,11 +4,8 @@ import lombok.Data; import java.util.Date; -import javax.persistence.Column; -import javax.persistence.GeneratedValue; -import javax.persistence.GenerationType; -import javax.persistence.Id; -import javax.persistence.Table; +import com.gitee.fastmybatis.annotation.Pk; +import com.gitee.fastmybatis.annotation.Table; /** @@ -17,12 +14,9 @@ import javax.persistence.Table; * * @author tanghc */ -@Table(name = "perm_role") +@Table(name = "perm_role",pk = @Pk(name = "id")) @Data public class PermRole { - @Id - @Column(name = "id") - @GeneratedValue(strategy = GenerationType.IDENTITY) /** 数据库字段:id */ private Long id; diff --git a/sop-admin/sop-admin-server/src/main/java/com/gitee/sop/adminserver/entity/PermRolePermission.java b/sop-admin/sop-admin-server/src/main/java/com/gitee/sop/adminserver/entity/PermRolePermission.java index 8f87d098..6e6b85f2 100644 --- a/sop-admin/sop-admin-server/src/main/java/com/gitee/sop/adminserver/entity/PermRolePermission.java +++ b/sop-admin/sop-admin-server/src/main/java/com/gitee/sop/adminserver/entity/PermRolePermission.java @@ -4,11 +4,8 @@ import lombok.Data; import java.util.Date; -import javax.persistence.Column; -import javax.persistence.GeneratedValue; -import javax.persistence.GenerationType; -import javax.persistence.Id; -import javax.persistence.Table; +import com.gitee.fastmybatis.annotation.Pk; +import com.gitee.fastmybatis.annotation.Table; /** @@ -17,12 +14,9 @@ import javax.persistence.Table; * * @author tanghc */ -@Table(name = "perm_role_permission") +@Table(name = "perm_role_permission",pk = @Pk(name = "id")) @Data public class PermRolePermission { - @Id - @Column(name = "id") - @GeneratedValue(strategy = GenerationType.IDENTITY) /** 数据库字段:id */ private Long id; diff --git a/sop-admin/sop-admin-server/src/main/java/com/gitee/sop/adminserver/service/impl/RegistryServiceNacosImpl.java b/sop-admin/sop-admin-server/src/main/java/com/gitee/sop/adminserver/service/impl/RegistryServiceNacosImpl.java index 21a2afd4..3fe650a3 100644 --- a/sop-admin/sop-admin-server/src/main/java/com/gitee/sop/adminserver/service/impl/RegistryServiceNacosImpl.java +++ b/sop-admin/sop-admin-server/src/main/java/com/gitee/sop/adminserver/service/impl/RegistryServiceNacosImpl.java @@ -135,7 +135,8 @@ public class RegistryServiceNacosImpl implements RegistryService { params.put("ip", serviceInstance.getIp()); params.put("port", String.valueOf(serviceInstance.getPort())); String instanceJson = httpTool.request("http://" + nacosAddr + "/nacos/v1/ns/instance", params, null, HttpTool.HTTPMethod.GET); - Instance instance = JSON.parseObject(instanceJson, Instance.class); + JSONObject jsonObject = JSON.parseObject(instanceJson); + Instance instance = JSON.parseObject(jsonObject.getString("data"), Instance.class); instance.setServiceName(serviceInstance.getServiceId()); return instance; } diff --git a/sop-auth/src/main/java/com/gitee/sop/sopauth/entity/IsvInfo.java b/sop-auth/src/main/java/com/gitee/sop/sopauth/entity/IsvInfo.java index 64361500..97bd2078 100644 --- a/sop-auth/src/main/java/com/gitee/sop/sopauth/entity/IsvInfo.java +++ b/sop-auth/src/main/java/com/gitee/sop/sopauth/entity/IsvInfo.java @@ -2,11 +2,8 @@ package com.gitee.sop.sopauth.entity; import lombok.Data; -import javax.persistence.Column; -import javax.persistence.GeneratedValue; -import javax.persistence.GenerationType; -import javax.persistence.Id; -import javax.persistence.Table; +import com.gitee.fastmybatis.annotation.Pk; +import com.gitee.fastmybatis.annotation.Table; /** @@ -15,12 +12,9 @@ import javax.persistence.Table; * * @author tanghc */ -@Table(name = "isv_info") +@Table(name = "isv_info",pk = @Pk(name = "id")) @Data public class IsvInfo { - @Id - @Column(name = "id") - @GeneratedValue(strategy = GenerationType.IDENTITY) /** 数据库字段:id */ private Long id; diff --git a/sop-auth/src/main/java/com/gitee/sop/sopauth/entity/UserInfo.java b/sop-auth/src/main/java/com/gitee/sop/sopauth/entity/UserInfo.java index bf0ec7c3..07aac187 100644 --- a/sop-auth/src/main/java/com/gitee/sop/sopauth/entity/UserInfo.java +++ b/sop-auth/src/main/java/com/gitee/sop/sopauth/entity/UserInfo.java @@ -4,11 +4,8 @@ import com.alibaba.fastjson.annotation.JSONField; import com.gitee.sop.sopauth.auth.OpenUser; import lombok.Data; -import javax.persistence.Column; -import javax.persistence.GeneratedValue; -import javax.persistence.GenerationType; -import javax.persistence.Id; -import javax.persistence.Table; +import com.gitee.fastmybatis.annotation.Pk; +import com.gitee.fastmybatis.annotation.Table; import java.util.Date; @@ -18,12 +15,9 @@ import java.util.Date; * * @author tanghc */ -@Table(name = "user_info") +@Table(name = "user_info",pk = @Pk(name = "id")) @Data public class UserInfo implements OpenUser { - @Id - @Column(name = "id") - @GeneratedValue(strategy = GenerationType.IDENTITY) /** 数据库字段:id */ private Long id; diff --git a/sop-common/pom.xml b/sop-common/pom.xml index 8542f928..8b6cbe8c 100644 --- a/sop-common/pom.xml +++ b/sop-common/pom.xml @@ -20,7 +20,6 @@ sop-bridge-nacos - sop-bridge-eureka sop-gateway-common sop-service-common diff --git a/sop-common/sop-bridge-eureka/pom.xml b/sop-common/sop-bridge-eureka/pom.xml index 68d322dd..8a154a82 100644 --- a/sop-common/sop-bridge-eureka/pom.xml +++ b/sop-common/sop-bridge-eureka/pom.xml @@ -26,6 +26,7 @@ org.springframework.cloud spring-cloud-starter-netflix-ribbon + 2.2.10.RELEASE diff --git a/sop-common/sop-bridge-nacos/pom.xml b/sop-common/sop-bridge-nacos/pom.xml index e55f20bf..02e49bcf 100644 --- a/sop-common/sop-bridge-nacos/pom.xml +++ b/sop-common/sop-bridge-nacos/pom.xml @@ -2,16 +2,20 @@ + + com.gitee.sop + sop-common + 4.4.2-SNAPSHOT + ../pom.xml + 4.0.0 - com.gitee.sop sop-bridge-nacos - 4.4.2-SNAPSHOT com.gitee.sop sop-gateway-common - 4.4.2-SNAPSHOT + ${project.version} diff --git a/sop-common/sop-bridge-nacos/src/main/java/com/gitee/sop/bridge/route/NacosRegistryListener.java b/sop-common/sop-bridge-nacos/src/main/java/com/gitee/sop/bridge/route/NacosRegistryListener.java index 7dc641d4..18b8cef5 100644 --- a/sop-common/sop-bridge-nacos/src/main/java/com/gitee/sop/bridge/route/NacosRegistryListener.java +++ b/sop-common/sop-bridge-nacos/src/main/java/com/gitee/sop/bridge/route/NacosRegistryListener.java @@ -12,6 +12,7 @@ import com.gitee.sop.gatewaycommon.route.RegistryEvent; import com.gitee.sop.gatewaycommon.route.ServiceHolder; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang.math.NumberUtils; +import org.springframework.beans.factory.ObjectProvider; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.context.ApplicationEvent; @@ -41,8 +42,8 @@ public class NacosRegistryListener extends BaseRegistryListener { @Autowired private NacosDiscoveryProperties nacosDiscoveryProperties; - @Autowired(required = false) - private List registryEventList; + @Autowired + private ObjectProvider registryEventList; @Override public synchronized void onEvent(ApplicationEvent applicationEvent) { diff --git a/sop-common/sop-gateway-common/pom.xml b/sop-common/sop-gateway-common/pom.xml index 659c49aa..8edb02b4 100644 --- a/sop-common/sop-gateway-common/pom.xml +++ b/sop-common/sop-gateway-common/pom.xml @@ -43,11 +43,6 @@ commons-collections - - org.springframework.cloud - spring-cloud-netflix-ribbon - - com.alibaba fastjson @@ -104,7 +99,23 @@ org.springframework spring-jdbc - + + org.springframework.cloud + spring-cloud-commons + + + org.springframework.cloud + spring-cloud-loadbalancer + + + org.slf4j + slf4j-api + + + org.springframework.cloud + spring-cloud-starter-netflix-ribbon + 2.2.10.RELEASE + diff --git a/sop-common/sop-gateway-common/src/main/java/com/gitee/sop/gatewaycommon/bean/ServiceDefinition.java b/sop-common/sop-gateway-common/src/main/java/com/gitee/sop/gatewaycommon/bean/ServiceDefinition.java index ab6764bd..41074dd3 100644 --- a/sop-common/sop-gateway-common/src/main/java/com/gitee/sop/gatewaycommon/bean/ServiceDefinition.java +++ b/sop-common/sop-gateway-common/src/main/java/com/gitee/sop/gatewaycommon/bean/ServiceDefinition.java @@ -2,9 +2,6 @@ package com.gitee.sop.gatewaycommon.bean; import lombok.Data; -import java.util.Date; -import java.util.List; - /** * @author tanghc */ diff --git a/sop-common/sop-gateway-common/src/main/java/com/gitee/sop/gatewaycommon/config/AbstractConfiguration.java b/sop-common/sop-gateway-common/src/main/java/com/gitee/sop/gatewaycommon/config/AbstractConfiguration.java index e00b1d56..8aa3bb3b 100644 --- a/sop-common/sop-gateway-common/src/main/java/com/gitee/sop/gatewaycommon/config/AbstractConfiguration.java +++ b/sop-common/sop-gateway-common/src/main/java/com/gitee/sop/gatewaycommon/config/AbstractConfiguration.java @@ -4,17 +4,9 @@ import com.gitee.sop.gatewaycommon.bean.ApiConfig; import com.gitee.sop.gatewaycommon.bean.ApiContext; import com.gitee.sop.gatewaycommon.bean.BeanInitializer; import com.gitee.sop.gatewaycommon.bean.SpringContext; -import com.gitee.sop.gatewaycommon.gateway.loadbalancer.NacosServerIntrospector; import com.gitee.sop.gatewaycommon.interceptor.RouteInterceptor; import com.gitee.sop.gatewaycommon.limit.LimitManager; -import com.gitee.sop.gatewaycommon.manager.EnvGrayManager; -import com.gitee.sop.gatewaycommon.manager.EnvironmentContext; -import com.gitee.sop.gatewaycommon.manager.EnvironmentKeys; -import com.gitee.sop.gatewaycommon.manager.IPBlacklistManager; -import com.gitee.sop.gatewaycommon.manager.IsvRoutePermissionManager; -import com.gitee.sop.gatewaycommon.manager.LimitConfigManager; -import com.gitee.sop.gatewaycommon.manager.RouteConfigManager; -import com.gitee.sop.gatewaycommon.manager.RouteRepositoryContext; +import com.gitee.sop.gatewaycommon.manager.*; import com.gitee.sop.gatewaycommon.message.ErrorFactory; import com.gitee.sop.gatewaycommon.monitor.MonitorManager; import com.gitee.sop.gatewaycommon.param.ParameterFormatter; @@ -35,7 +27,6 @@ import org.springframework.boot.ApplicationRunner; import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; import org.springframework.cloud.client.discovery.event.HeartbeatEvent; -import org.springframework.cloud.netflix.ribbon.ServerIntrospector; import org.springframework.context.ApplicationContext; import org.springframework.context.ApplicationContextAware; import org.springframework.context.ApplicationEvent; @@ -67,9 +58,6 @@ public class AbstractConfiguration implements ApplicationContextAware, Applicati @Autowired protected Environment environment; - @Autowired - private RegistryListener registryListener; - protected ApplicationContext applicationContext; @Override @@ -95,7 +83,7 @@ public class AbstractConfiguration implements ApplicationContextAware, Applicati lock.unlock(); } } - registryListener.onEvent(heartbeatEvent); + applicationContext.getBean(RegistryListener.class).onEvent(heartbeatEvent); } @Bean @@ -190,18 +178,6 @@ public class AbstractConfiguration implements ApplicationContextAware, Applicati return corsConfiguration; } - /** - * 负责获取nacos实例的metadata - * @return - */ - @Bean - @ConditionalOnProperty("spring.cloud.nacos.discovery.server-addr") - ServerIntrospector nacosServerIntrospector() { - return new NacosServerIntrospector(); - } - - - @Override public void run(ApplicationArguments args) throws Exception { this.isStartupCompleted = true; diff --git a/sop-common/sop-gateway-common/src/main/java/com/gitee/sop/gatewaycommon/config/SopGatewayAutoConfiguration.java b/sop-common/sop-gateway-common/src/main/java/com/gitee/sop/gatewaycommon/config/SopGatewayAutoConfiguration.java index 49ff0574..d07b9cd0 100644 --- a/sop-common/sop-gateway-common/src/main/java/com/gitee/sop/gatewaycommon/config/SopGatewayAutoConfiguration.java +++ b/sop-common/sop-gateway-common/src/main/java/com/gitee/sop/gatewaycommon/config/SopGatewayAutoConfiguration.java @@ -1,8 +1,6 @@ package com.gitee.sop.gatewaycommon.config; import com.gitee.sop.gatewaycommon.gateway.configuration.AlipayGatewayConfiguration; -import org.springframework.boot.autoconfigure.AutoConfigureBefore; -import org.springframework.cloud.netflix.ribbon.RibbonAutoConfiguration; import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Import; @@ -12,6 +10,5 @@ import org.springframework.context.annotation.Import; */ @Configuration @Import(AlipayGatewayConfiguration.class) -@AutoConfigureBefore(RibbonAutoConfiguration.class) public class SopGatewayAutoConfiguration extends BaseGatewayAutoConfiguration { } diff --git a/sop-common/sop-gateway-common/src/main/java/com/gitee/sop/gatewaycommon/gateway/configuration/BaseGatewayConfiguration.java b/sop-common/sop-gateway-common/src/main/java/com/gitee/sop/gatewaycommon/gateway/configuration/BaseGatewayConfiguration.java index 40de5cf2..20e22d0b 100644 --- a/sop-common/sop-gateway-common/src/main/java/com/gitee/sop/gatewaycommon/gateway/configuration/BaseGatewayConfiguration.java +++ b/sop-common/sop-gateway-common/src/main/java/com/gitee/sop/gatewaycommon/gateway/configuration/BaseGatewayConfiguration.java @@ -1,25 +1,19 @@ package com.gitee.sop.gatewaycommon.gateway.configuration; import com.gitee.sop.gatewaycommon.bean.ApiConfig; +import com.gitee.sop.gatewaycommon.config.AbstractConfiguration; import com.gitee.sop.gatewaycommon.gateway.filter.GatewayModifyResponseGatewayFilter; import com.gitee.sop.gatewaycommon.gateway.filter.IndexFilter; import com.gitee.sop.gatewaycommon.gateway.filter.LimitFilter; import com.gitee.sop.gatewaycommon.gateway.filter.ParameterFormatterFilter; -import com.gitee.sop.gatewaycommon.gateway.filter.SopLoadBalancerClientFilter; import com.gitee.sop.gatewaycommon.gateway.handler.GatewayExceptionHandler; -import com.gitee.sop.gatewaycommon.gateway.loadbalancer.SopLoadBalancerClient; import com.gitee.sop.gatewaycommon.gateway.route.GatewayForwardChooser; import com.gitee.sop.gatewaycommon.gateway.route.GatewayRouteCache; import com.gitee.sop.gatewaycommon.gateway.route.GatewayRouteRepository; -import com.gitee.sop.gatewaycommon.config.AbstractConfiguration; import com.gitee.sop.gatewaycommon.manager.RouteRepositoryContext; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.ObjectProvider; import org.springframework.boot.web.reactive.error.ErrorWebExceptionHandler; -import org.springframework.cloud.client.loadbalancer.LoadBalancerClient; -import org.springframework.cloud.gateway.config.LoadBalancerProperties; -import org.springframework.cloud.gateway.filter.LoadBalancerClientFilter; -import org.springframework.cloud.netflix.ribbon.SpringClientFactory; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Primary; import org.springframework.core.Ordered; @@ -100,25 +94,4 @@ public class BaseGatewayConfiguration extends AbstractConfiguration { return new GatewayForwardChooser(); } - /** - * 扩展默认的负载均衡选择,默认使用的是RibbonLoadBalancerClient - * @param clientFactory - * @return - */ - @Bean - LoadBalancerClient loadBalancerClient(SpringClientFactory clientFactory) { - return new SopLoadBalancerClient(clientFactory); - } - - /** - * 扩展默认的负载均衡过滤器,默认是LoadBalancerClientFilter - * @param sopLoadBalancerClient SopLoadBalancerClient - * @param loadBalancerProperties loadBalancerProperties - * @return - */ - @Bean - LoadBalancerClientFilter loadBalancerClientFilter(LoadBalancerClient sopLoadBalancerClient, LoadBalancerProperties loadBalancerProperties) { - return new SopLoadBalancerClientFilter(sopLoadBalancerClient, loadBalancerProperties); - } - } diff --git a/sop-common/sop-gateway-common/src/main/java/com/gitee/sop/gatewaycommon/gateway/controller/RestfulController.java b/sop-common/sop-gateway-common/src/main/java/com/gitee/sop/gatewaycommon/gateway/controller/RestfulController.java index 6f04187e..8e4c9493 100644 --- a/sop-common/sop-gateway-common/src/main/java/com/gitee/sop/gatewaycommon/gateway/controller/RestfulController.java +++ b/sop-common/sop-gateway-common/src/main/java/com/gitee/sop/gatewaycommon/gateway/controller/RestfulController.java @@ -1,9 +1,10 @@ package com.gitee.sop.gatewaycommon.gateway.controller; -import com.gitee.sop.gatewaycommon.bean.SpringContext; -import com.gitee.sop.gatewaycommon.gateway.loadbalancer.SopLoadBalancerClient; +import org.apache.commons.collections.CollectionUtils; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.cloud.client.ServiceInstance; +import org.springframework.cloud.client.discovery.DiscoveryClient; import org.springframework.cloud.gateway.webflux.ProxyExchange; import org.springframework.http.ResponseEntity; import org.springframework.stereotype.Controller; @@ -12,6 +13,9 @@ import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.server.ServerWebExchange; import reactor.core.publisher.Mono; +import java.util.List; +import java.util.Random; + /** * 处理restful请求 * @author tanghc @@ -21,6 +25,8 @@ public class RestfulController { @Value("${sop.restful.path:/rest}") private String prefix; + @Autowired + private DiscoveryClient discoveryClient; @RequestMapping("${sop.restful.path:/rest}/**") public Mono> proxy(ProxyExchange proxy, ServerWebExchange exchange) { @@ -32,7 +38,14 @@ public class RestfulController { targetPath = targetPath + "?" + rawQuery; } // 负载均衡 - ServiceInstance serviceInstance = SpringContext.getBean(SopLoadBalancerClient.class).choose(serviceId, exchange); + List instances = discoveryClient.getInstances(serviceId); + if (CollectionUtils.isEmpty(instances)) { + return Mono.error(new RuntimeException("serviceId: " + serviceId + " not found")); + } + ServiceInstance serviceInstance = instances.stream() + .skip(new Random().nextInt(instances.size())) + .findFirst() + .orElse(null); String uri = "http://" + serviceInstance.getHost() + ":" + serviceInstance.getPort() + targetPath; return proxy.uri(uri).forward(); } diff --git a/sop-common/sop-gateway-common/src/main/java/com/gitee/sop/gatewaycommon/gateway/filter/SopLoadBalancerClientFilter.java b/sop-common/sop-gateway-common/src/main/java/com/gitee/sop/gatewaycommon/gateway/filter/SopLoadBalancerClientFilter.java deleted file mode 100644 index b048c8af..00000000 --- a/sop-common/sop-gateway-common/src/main/java/com/gitee/sop/gatewaycommon/gateway/filter/SopLoadBalancerClientFilter.java +++ /dev/null @@ -1,36 +0,0 @@ -package com.gitee.sop.gatewaycommon.gateway.filter; - -import com.gitee.sop.gatewaycommon.bean.SopConstants; -import com.gitee.sop.gatewaycommon.gateway.loadbalancer.SopLoadBalancerClient; -import org.springframework.cloud.client.ServiceInstance; -import org.springframework.cloud.client.loadbalancer.LoadBalancerClient; -import org.springframework.cloud.gateway.config.LoadBalancerProperties; -import org.springframework.cloud.gateway.filter.LoadBalancerClientFilter; -import org.springframework.web.server.ServerWebExchange; - -import java.net.URI; - -import static org.springframework.cloud.gateway.support.ServerWebExchangeUtils.GATEWAY_REQUEST_URL_ATTR; - -/** - * 扩展负载均衡过滤器 - * @author tanghc - */ -public class SopLoadBalancerClientFilter extends LoadBalancerClientFilter { - public SopLoadBalancerClientFilter(LoadBalancerClient loadBalancer, LoadBalancerProperties properties) { - super(loadBalancer, properties); - } - - @Override - protected ServiceInstance choose(ServerWebExchange exchange) { - ServiceInstance serviceInstance; - if (loadBalancer instanceof SopLoadBalancerClient) { - SopLoadBalancerClient sopLoadBalancerClient = (SopLoadBalancerClient)loadBalancer; - serviceInstance = sopLoadBalancerClient.choose(((URI) exchange.getAttribute(GATEWAY_REQUEST_URL_ATTR)).getHost(), exchange); - } else { - serviceInstance = super.choose(exchange); - } - exchange.getAttributes().put(SopConstants.TARGET_SERVICE, serviceInstance); - return serviceInstance; - } -} diff --git a/sop-common/sop-gateway-common/src/main/java/com/gitee/sop/gatewaycommon/gateway/loadbalancer/GatewayLoadBalanceServerChooser.java b/sop-common/sop-gateway-common/src/main/java/com/gitee/sop/gatewaycommon/gateway/loadbalancer/GatewayLoadBalanceServerChooser.java deleted file mode 100644 index 8a6f8886..00000000 --- a/sop-common/sop-gateway-common/src/main/java/com/gitee/sop/gatewaycommon/gateway/loadbalancer/GatewayLoadBalanceServerChooser.java +++ /dev/null @@ -1,29 +0,0 @@ -package com.gitee.sop.gatewaycommon.gateway.loadbalancer; - -import com.gitee.sop.gatewaycommon.gateway.ServerWebExchangeUtil; -import com.gitee.sop.gatewaycommon.loadbalancer.LoadBalanceServerChooser; -import com.gitee.sop.gatewaycommon.param.ApiParam; -import org.springframework.cloud.client.ServiceInstance; -import org.springframework.cloud.netflix.ribbon.SpringClientFactory; -import org.springframework.web.server.ServerWebExchange; - -/** - * @author tanghc - */ -public class GatewayLoadBalanceServerChooser extends LoadBalanceServerChooser { - - public GatewayLoadBalanceServerChooser(SpringClientFactory clientFactory) { - this.setClientFactory(clientFactory); - } - - @Override - public String getHost(ServerWebExchange exchange) { - return exchange.getRequest().getURI().getHost(); - } - - @Override - public ApiParam getApiParam(ServerWebExchange exchange) { - return ServerWebExchangeUtil.getApiParam(exchange); - } - -} diff --git a/sop-common/sop-gateway-common/src/main/java/com/gitee/sop/gatewaycommon/gateway/loadbalancer/NacosServerIntrospector.java b/sop-common/sop-gateway-common/src/main/java/com/gitee/sop/gatewaycommon/gateway/loadbalancer/NacosServerIntrospector.java deleted file mode 100644 index e4eb72d5..00000000 --- a/sop-common/sop-gateway-common/src/main/java/com/gitee/sop/gatewaycommon/gateway/loadbalancer/NacosServerIntrospector.java +++ /dev/null @@ -1,23 +0,0 @@ -package com.gitee.sop.gatewaycommon.gateway.loadbalancer; - -import com.alibaba.cloud.nacos.ribbon.NacosServer; -import com.netflix.loadbalancer.Server; -import org.springframework.cloud.netflix.ribbon.DefaultServerIntrospector; - -import java.util.Map; - -/** - * @author tanghc - */ -public class NacosServerIntrospector extends DefaultServerIntrospector { - - @Override - public Map getMetadata(Server server) { - if (server instanceof NacosServer) { - NacosServer discoveryServer = (NacosServer)server; - return discoveryServer.getInstance().getMetadata(); - } else { - return super.getMetadata(server); - } - } -} diff --git a/sop-common/sop-gateway-common/src/main/java/com/gitee/sop/gatewaycommon/gateway/loadbalancer/SopLoadBalancerClient.java b/sop-common/sop-gateway-common/src/main/java/com/gitee/sop/gatewaycommon/gateway/loadbalancer/SopLoadBalancerClient.java deleted file mode 100644 index 32408323..00000000 --- a/sop-common/sop-gateway-common/src/main/java/com/gitee/sop/gatewaycommon/gateway/loadbalancer/SopLoadBalancerClient.java +++ /dev/null @@ -1,87 +0,0 @@ -package com.gitee.sop.gatewaycommon.gateway.loadbalancer; - -import com.gitee.sop.gatewaycommon.gateway.ServerWebExchangeUtil; -import com.gitee.sop.gatewaycommon.loadbalancer.ServerChooserContext; -import com.gitee.sop.gatewaycommon.param.ApiParam; -import com.gitee.sop.gatewaycommon.util.LoadBalanceUtil; -import com.netflix.client.config.IClientConfig; -import com.netflix.loadbalancer.Server; -import org.springframework.cloud.client.ServiceInstance; -import org.springframework.cloud.netflix.ribbon.DefaultServerIntrospector; -import org.springframework.cloud.netflix.ribbon.RibbonLoadBalancerClient; -import org.springframework.cloud.netflix.ribbon.RibbonUtils; -import org.springframework.cloud.netflix.ribbon.ServerIntrospector; -import org.springframework.cloud.netflix.ribbon.SpringClientFactory; -import org.springframework.web.server.ServerWebExchange; - -import java.util.List; - -/** - * 重写负载均衡处理。 - * 默认使用的是RibbonLoadBalancerClient类,详见org.springframework.cloud.netflix.ribbon.RibbonAutoConfiguration#loadBalancerClient() - * - * @author tanghc - */ -public class SopLoadBalancerClient extends RibbonLoadBalancerClient implements ServerChooserContext { - - private final SpringClientFactory clientFactory; - private GatewayLoadBalanceServerChooser loadBalanceServerChooser; - - public SopLoadBalancerClient(SpringClientFactory clientFactory) { - super(clientFactory); - this.clientFactory = clientFactory; - this.loadBalanceServerChooser = new GatewayLoadBalanceServerChooser(clientFactory); - } - - /** - * New: Select a server using a 'key'. - */ - @Override - public ServiceInstance choose(String serviceId, Object hint) { - return loadBalanceServerChooser.choose( - serviceId - , (ServerWebExchange) hint - , this.getLoadBalancer(serviceId) - , () -> super.choose(serviceId, hint) - , (servers) -> getRibbonServer(serviceId, servers) - ); - } - - @Override - public ApiParam getApiParam(ServerWebExchange exchange) { - return ServerWebExchangeUtil.getApiParam(exchange); - } - - @Override - public String getHost(ServerWebExchange exchange) { - return exchange.getRequest().getURI().getHost(); - } - - private RibbonServer getRibbonServer(String serviceId, List servers) { - Server server = LoadBalanceUtil.chooseByRoundRobin(serviceId, servers); - if (server == null) { - return null; - } - return new RibbonServer( - serviceId - , server - , isSecure(server, serviceId) - , serverIntrospector(serviceId).getMetadata(server) - ); - } - - private ServerIntrospector serverIntrospector(String serviceId) { - ServerIntrospector serverIntrospector = this.clientFactory.getInstance(serviceId, - ServerIntrospector.class); - if (serverIntrospector == null) { - serverIntrospector = new DefaultServerIntrospector(); - } - return serverIntrospector; - } - - private boolean isSecure(Server server, String serviceId) { - IClientConfig config = this.clientFactory.getClientConfig(serviceId); - ServerIntrospector serverIntrospector = serverIntrospector(serviceId); - return RibbonUtils.isSecure(config, serverIntrospector, server); - } -} diff --git a/sop-common/sop-gateway-common/src/main/java/com/gitee/sop/gatewaycommon/loadbalancer/GrayLoadBalancer.java b/sop-common/sop-gateway-common/src/main/java/com/gitee/sop/gatewaycommon/loadbalancer/GrayLoadBalancer.java new file mode 100644 index 00000000..f0e91f76 --- /dev/null +++ b/sop-common/sop-gateway-common/src/main/java/com/gitee/sop/gatewaycommon/loadbalancer/GrayLoadBalancer.java @@ -0,0 +1,179 @@ +package com.gitee.sop.gatewaycommon.loadbalancer; + +import com.gitee.sop.gatewaycommon.bean.SopConstants; +import com.gitee.sop.gatewaycommon.manager.EnvironmentKeys; +import com.gitee.sop.gatewaycommon.param.ApiParam; +import lombok.Data; +import org.apache.commons.lang3.ArrayUtils; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.ObjectProvider; +import org.springframework.cloud.client.ServiceInstance; +import org.springframework.cloud.client.loadbalancer.*; +import org.springframework.cloud.loadbalancer.core.NoopServiceInstanceListSupplier; +import org.springframework.cloud.loadbalancer.core.ReactorServiceInstanceLoadBalancer; +import org.springframework.cloud.loadbalancer.core.SelectedInstanceCallback; +import org.springframework.cloud.loadbalancer.core.ServiceInstanceListSupplier; +import org.springframework.http.HttpHeaders; +import org.springframework.util.StringUtils; +import reactor.core.publisher.Mono; + +import java.util.*; +import java.util.concurrent.atomic.AtomicInteger; + +@Data +public class GrayLoadBalancer implements ReactorServiceInstanceLoadBalancer { + private static final Logger log = LoggerFactory.getLogger(GrayLoadBalancer.class); + private final String serviceId; + private AtomicInteger position; // 位置,下标 + private ObjectProvider serviceInstanceListSupplierProvider; + + public GrayLoadBalancer(ObjectProvider serviceInstanceListSupplierProvider, String serviceId) { + this.serviceId = serviceId; + this.serviceInstanceListSupplierProvider = serviceInstanceListSupplierProvider; + this.position = new AtomicInteger(new Random().nextInt(1000)); //随机进行设置一个值 + } + + @Override + public Mono> choose(Request request) { + // 提供备选的服务实例列表 + ServiceInstanceListSupplier supplier = this.serviceInstanceListSupplierProvider.getIfAvailable(NoopServiceInstanceListSupplier::new); + // 选择服务实例 + return supplier.get(request).next().map((serviceInstances) -> this.processInstanceResponse(supplier, serviceInstances, request)); + } + + private Response processInstanceResponse(ServiceInstanceListSupplier supplier, + List serviceInstances, + Request request) { + // 从备选的服务列表中选择一个具体的服务实例 + Response serviceInstanceResponse = this.getInstanceResponse(serviceInstances, + request); + if (supplier instanceof SelectedInstanceCallback && serviceInstanceResponse.hasServer()) { + ((SelectedInstanceCallback) supplier).selectedServiceInstance((ServiceInstance) serviceInstanceResponse.getServer()); + } + return serviceInstanceResponse; + } + + private Response getInstanceResponse(List instances, + Request request) { + // 实例为空 首先进行实例判空 + if (instances.isEmpty()) { + if (log.isWarnEnabled()) { + //判空后 给予警告 + log.warn("No servers available for service: " + this.serviceId); + } + //返回响应 + return new EmptyResponse(); + } else { + // 存放预发服务器 + List preServers = new ArrayList<>(4); + // 存放灰度发布服务器 + List grayServers = new ArrayList<>(4); + // 存放非预发服务器 + List notPreServers = new ArrayList<>(4); + + notPreServers.addAll(grayServers); + + for (ServiceInstance instance : instances) { + // 获取实例metadata + Map metadata = instance.getMetadata(); + // 是否开启了预发模式 + if (this.isPreServer(metadata)) { + preServers.add(instance); + } else if (this.isGrayServer(metadata)) { + grayServers.add(instance); + } else { + notPreServers.add(instance); + } + } + notPreServers.addAll(grayServers); + + RequestDataContext context = (RequestDataContext) request.getContext(); + ApiParam apiParam = new ApiParam(); + apiParam.putAll(context.getClientRequest().getAttributes()); + + // 如果没有开启预发布服务和灰度发布,直接用默认的方式 + if (preServers.isEmpty() && grayServers.isEmpty()) { + int pos = this.position.incrementAndGet() & Integer.MAX_VALUE; + ServiceInstance instance = instances.get(pos % instances.size()); + return new DefaultResponse(instance); + } + // 如果是从预发布域名访问过来,则认为是预发布请求,选出预发服务器 + if (this.isRequestFromPreDomain(context.getClientRequest().getHeaders())) { + int pos = this.position.incrementAndGet() & Integer.MAX_VALUE; + ServiceInstance instance = preServers.get(pos % instances.size()); + return new DefaultResponse(instance); + } + // 如果是灰度请求,则认为是灰度用户,选出灰度服务器 + if (apiParam.fetchGrayRequest()) { + int pos = this.position.incrementAndGet() & Integer.MAX_VALUE; + ServiceInstance instance = grayServers.get(pos % instances.size()); + return new DefaultResponse(instance); + } + return getInstanceResponse(instances); + } + } + + /** + * 是否是预发布服务器 + * + * @param metadata metadata + * @return true:是 + */ + private boolean isPreServer(Map metadata) { + return Objects.equals(metadata.get(SopConstants.METADATA_ENV_KEY), SopConstants.METADATA_ENV_PRE_VALUE); + } + + /** + * 是否是灰度发布服务器 + * + * @param metadata metadata + * @return true:是 + */ + private boolean isGrayServer(Map metadata) { + return Objects.equals(metadata.get(SopConstants.METADATA_ENV_KEY), SopConstants.METADATA_ENV_GRAY_VALUE); + } + + /** + * 通过判断hostname来确定是否是预发布请求 + * + * @param httpHeaders + * @return 返回true:可以进入到预发环境 + */ + boolean isRequestFromPreDomain(HttpHeaders httpHeaders) { + String domain = EnvironmentKeys.PRE_DOMAIN.getValue(); + if (StringUtils.isEmpty(domain)) { + return false; + } + String[] domains = domain.split("\\,"); + if (httpHeaders.getHost() != null) { + String host = httpHeaders.getHost().getHostName(); + return ArrayUtils.contains(domains, host); + } else { + return false; + } + } + + public Response getInstanceResponse(List instances) { + if (instances.isEmpty()) { + if (log.isWarnEnabled()) { + log.warn("No servers available for service: " + serviceId); + } + return new EmptyResponse(); + } + + // Do not move position when there is only 1 instance, especially some suppliers + // have already filtered instances + if (instances.size() == 1) { + return new DefaultResponse(instances.get(0)); + } + + // Ignore the sign bit, this allows pos to loop sequentially from 0 to + // Integer.MAX_VALUE + int pos = this.position.incrementAndGet() & Integer.MAX_VALUE; + + ServiceInstance instance = instances.get(pos % instances.size()); + + return new DefaultResponse(instance); + } +} \ No newline at end of file diff --git a/sop-common/sop-gateway-common/src/main/java/com/gitee/sop/gatewaycommon/loadbalancer/GrayLoadBalancerConfig.java b/sop-common/sop-gateway-common/src/main/java/com/gitee/sop/gatewaycommon/loadbalancer/GrayLoadBalancerConfig.java new file mode 100644 index 00000000..9ce6048c --- /dev/null +++ b/sop-common/sop-gateway-common/src/main/java/com/gitee/sop/gatewaycommon/loadbalancer/GrayLoadBalancerConfig.java @@ -0,0 +1,18 @@ +package com.gitee.sop.gatewaycommon.loadbalancer; + +import org.springframework.cloud.client.ServiceInstance; +import org.springframework.cloud.loadbalancer.core.ReactorLoadBalancer; +import org.springframework.cloud.loadbalancer.core.ServiceInstanceListSupplier; +import org.springframework.cloud.loadbalancer.support.LoadBalancerClientFactory; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.core.env.Environment; + +@Configuration +public class GrayLoadBalancerConfig { + @Bean + public ReactorLoadBalancer GrayLoadBalancer(Environment environment, LoadBalancerClientFactory loadBalancerClientFactory) { + String name = environment.getProperty(LoadBalancerClientFactory.PROPERTY_NAME); + return new GrayLoadBalancer(loadBalancerClientFactory.getLazyProvider(name, ServiceInstanceListSupplier.class), name); + } +} \ No newline at end of file diff --git a/sop-common/sop-gateway-common/src/main/java/com/gitee/sop/gatewaycommon/loadbalancer/LoadBalanceServerChooser.java b/sop-common/sop-gateway-common/src/main/java/com/gitee/sop/gatewaycommon/loadbalancer/LoadBalanceServerChooser.java deleted file mode 100644 index 11dba443..00000000 --- a/sop-common/sop-gateway-common/src/main/java/com/gitee/sop/gatewaycommon/loadbalancer/LoadBalanceServerChooser.java +++ /dev/null @@ -1,128 +0,0 @@ -package com.gitee.sop.gatewaycommon.loadbalancer; - -import com.gitee.sop.gatewaycommon.bean.SopConstants; -import com.gitee.sop.gatewaycommon.bean.SpringContext; -import com.netflix.loadbalancer.ILoadBalancer; -import com.netflix.loadbalancer.Server; -import org.springframework.cloud.netflix.ribbon.DefaultServerIntrospector; -import org.springframework.cloud.netflix.ribbon.ServerIntrospector; -import org.springframework.cloud.netflix.ribbon.SpringClientFactory; - -import java.util.ArrayList; -import java.util.List; -import java.util.Map; -import java.util.Objects; -import java.util.function.Function; -import java.util.function.Supplier; - -/** - * 预发布、灰度发布服务器选择 - * - * @author tanghc - */ -public abstract class LoadBalanceServerChooser implements ServerChooserContext { - - private SpringClientFactory clientFactory; - - /** - * 选择服务器 - * - * @param serviceId serviceId,仅gateway网关有作用 - * @param exchange 请求上下文 - * @param loadBalancer loadBalancer - * @param superChooser 父类默认的选择 - * @param serverChooserFunction 执行选择操作 - * @return 返回服务器实例,没有选到则返回null - */ - public R choose( - String serviceId - , T exchange - , ILoadBalancer loadBalancer - , Supplier superChooser - , Function, R> serverChooserFunction) { - // 获取所有服务实例 - List servers = loadBalancer.getReachableServers(); - - // 存放预发服务器 - List preServers = new ArrayList<>(4); - // 存放灰度发布服务器 - List grayServers = new ArrayList<>(4); - // 存放非预发服务器 - List notPreServers = new ArrayList<>(4); - - for (Server server : servers) { - // 获取实例metadata - Map metadata = getMetadata(serviceId, server); - // 是否开启了预发模式 - if (this.isPreServer(metadata)) { - preServers.add(server); - } else if (this.isGrayServer(metadata)) { - grayServers.add(server); - } else { - notPreServers.add(server); - } - } - notPreServers.addAll(grayServers); - // 如果没有开启预发布服务和灰度发布,直接用默认的方式 - if (preServers.isEmpty() && grayServers.isEmpty()) { - return superChooser.get(); - } - // 如果是从预发布域名访问过来,则认为是预发布请求,选出预发服务器 - if (this.isRequestFromPreDomain(exchange)) { - return serverChooserFunction.apply(preServers); - } - // 如果是灰度请求,则认为是灰度用户,选出灰度服务器 - if (this.isRequestGrayServer(exchange)) { - return serverChooserFunction.apply(grayServers); - } - - // 到这里说明不能访问预发/灰度服务器,则需要路由到非预发服务器 - // 注意:这里允许走灰度服务器,如果不允许走,注释notPreServers.addAll(grayServers);这行 - return serverChooserFunction.apply(notPreServers); - } - - protected Map getMetadata(String serviceId, Server server) { - return serverIntrospector(serviceId).getMetadata(server); - } - - protected SpringClientFactory getSpringClientFactory() { - if (clientFactory == null) { - clientFactory = SpringContext.getBean(SpringClientFactory.class); - } - return clientFactory; - } - - public void setClientFactory(SpringClientFactory clientFactory) { - this.clientFactory = clientFactory; - } - - private ServerIntrospector serverIntrospector(String serviceId) { - ServerIntrospector serverIntrospector = getSpringClientFactory().getInstance(serviceId, - ServerIntrospector.class); - if (serverIntrospector == null) { - serverIntrospector = new DefaultServerIntrospector(); - } - return serverIntrospector; - } - - /** - * 是否是预发布服务器 - * - * @param metadata metadata - * @return true:是 - */ - private boolean isPreServer(Map metadata) { - return Objects.equals(metadata.get(SopConstants.METADATA_ENV_KEY), SopConstants.METADATA_ENV_PRE_VALUE); - } - - /** - * 是否是灰度发布服务器 - * - * @param metadata metadata - * @return true:是 - */ - private boolean isGrayServer(Map metadata) { - return Objects.equals(metadata.get(SopConstants.METADATA_ENV_KEY), SopConstants.METADATA_ENV_GRAY_VALUE); - } - -} diff --git a/sop-common/sop-gateway-common/src/main/java/com/gitee/sop/gatewaycommon/loadbalancer/ServerChooserContext.java b/sop-common/sop-gateway-common/src/main/java/com/gitee/sop/gatewaycommon/loadbalancer/ServerChooserContext.java deleted file mode 100644 index a91bc665..00000000 --- a/sop-common/sop-gateway-common/src/main/java/com/gitee/sop/gatewaycommon/loadbalancer/ServerChooserContext.java +++ /dev/null @@ -1,35 +0,0 @@ -package com.gitee.sop.gatewaycommon.loadbalancer; - -import com.gitee.sop.gatewaycommon.bean.ApiParamAware; -import com.gitee.sop.gatewaycommon.manager.EnvironmentKeys; -import com.gitee.sop.gatewaycommon.param.ApiParam; -import org.apache.commons.lang.ArrayUtils; -import org.springframework.util.StringUtils; - -/** - * @author tanghc - */ -public interface ServerChooserContext extends ApiParamAware { - - /** - * 通过判断hostname来确定是否是预发布请求 - * - * @param t t - * @return 返回true:可以进入到预发环境 - */ - default boolean isRequestFromPreDomain(T t) { - String domain = EnvironmentKeys.PRE_DOMAIN.getValue(); - if (StringUtils.isEmpty(domain)) { - return false; - } - String[] domains = domain.split("\\,"); - return ArrayUtils.contains(domains, getHost(t)); - } - - default boolean isRequestGrayServer(T t) { - ApiParam apiParam = getApiParam(t); - return apiParam.fetchGrayRequest(); - } - - String getHost(T t); -} diff --git a/sop-common/sop-gateway-common/src/main/java/com/gitee/sop/gatewaycommon/manager/DefaultIPBlacklistManager.java b/sop-common/sop-gateway-common/src/main/java/com/gitee/sop/gatewaycommon/manager/DefaultIPBlacklistManager.java index 9c1788bf..89684259 100644 --- a/sop-common/sop-gateway-common/src/main/java/com/gitee/sop/gatewaycommon/manager/DefaultIPBlacklistManager.java +++ b/sop-common/sop-gateway-common/src/main/java/com/gitee/sop/gatewaycommon/manager/DefaultIPBlacklistManager.java @@ -1,7 +1,7 @@ package com.gitee.sop.gatewaycommon.manager; import com.google.common.collect.Sets; -import org.apache.commons.lang.StringUtils; +import org.apache.commons.lang3.StringUtils; import java.util.Set; diff --git a/sop-common/sop-gateway-common/src/main/java/com/gitee/sop/gatewaycommon/manager/DefaultLimitConfigManager.java b/sop-common/sop-gateway-common/src/main/java/com/gitee/sop/gatewaycommon/manager/DefaultLimitConfigManager.java index bd4d42f4..9dbd1381 100644 --- a/sop-common/sop-gateway-common/src/main/java/com/gitee/sop/gatewaycommon/manager/DefaultLimitConfigManager.java +++ b/sop-common/sop-gateway-common/src/main/java/com/gitee/sop/gatewaycommon/manager/DefaultLimitConfigManager.java @@ -1,7 +1,7 @@ package com.gitee.sop.gatewaycommon.manager; import com.gitee.sop.gatewaycommon.bean.ConfigLimitDto; -import org.apache.commons.lang.StringUtils; +import org.apache.commons.lang3.StringUtils; import java.util.Arrays; import java.util.Collections; diff --git a/sop-common/sop-gateway-common/src/main/java/com/gitee/sop/gatewaycommon/route/BaseRegistryListener.java b/sop-common/sop-gateway-common/src/main/java/com/gitee/sop/gatewaycommon/route/BaseRegistryListener.java index 06db6e24..cce0c622 100644 --- a/sop-common/sop-gateway-common/src/main/java/com/gitee/sop/gatewaycommon/route/BaseRegistryListener.java +++ b/sop-common/sop-gateway-common/src/main/java/com/gitee/sop/gatewaycommon/route/BaseRegistryListener.java @@ -1,9 +1,10 @@ package com.gitee.sop.gatewaycommon.route; import com.gitee.sop.gatewaycommon.bean.InstanceDefinition; +import com.gitee.sop.gatewaycommon.bean.SpringContext; import com.gitee.sop.gatewaycommon.manager.EnvironmentKeys; import lombok.extern.slf4j.Slf4j; -import org.apache.commons.lang.StringUtils; +import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import java.util.ArrayList; diff --git a/sop-common/sop-gateway-common/src/main/java/com/gitee/sop/gatewaycommon/route/ServiceRouteListener.java b/sop-common/sop-gateway-common/src/main/java/com/gitee/sop/gatewaycommon/route/ServiceRouteListener.java index 9a574856..ceda396d 100644 --- a/sop-common/sop-gateway-common/src/main/java/com/gitee/sop/gatewaycommon/route/ServiceRouteListener.java +++ b/sop-common/sop-gateway-common/src/main/java/com/gitee/sop/gatewaycommon/route/ServiceRouteListener.java @@ -7,7 +7,7 @@ import com.gitee.sop.gatewaycommon.bean.ServiceBeanInitializer; import com.gitee.sop.gatewaycommon.bean.ServiceRouteInfo; import com.gitee.sop.gatewaycommon.gateway.route.GatewayRouteCache; import lombok.extern.slf4j.Slf4j; -import org.apache.commons.lang.StringUtils; +import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.ApplicationContext; import org.springframework.http.HttpEntity; diff --git a/sop-common/sop-gateway-common/src/main/java/com/gitee/sop/gatewaycommon/util/RequestUtil.java b/sop-common/sop-gateway-common/src/main/java/com/gitee/sop/gatewaycommon/util/RequestUtil.java index 1919ca51..518e59be 100644 --- a/sop-common/sop-gateway-common/src/main/java/com/gitee/sop/gatewaycommon/util/RequestUtil.java +++ b/sop-common/sop-gateway-common/src/main/java/com/gitee/sop/gatewaycommon/util/RequestUtil.java @@ -107,7 +107,7 @@ public class RequestUtil { } catch (UnsupportedEncodingException e) { log.error("字符集不支持", e); } - return org.apache.commons.lang.StringUtils.join(list, "&"); + return org.apache.commons.lang3.StringUtils.join(list, "&"); } /** diff --git a/sop-common/sop-service-common/pom.xml b/sop-common/sop-service-common/pom.xml index 3e279a84..452048e1 100644 --- a/sop-common/sop-service-common/pom.xml +++ b/sop-common/sop-service-common/pom.xml @@ -12,12 +12,12 @@ 1.8 - 2.3.2.RELEASE + 2.6.15 - Hoxton.SR8 + 2021.0.5 - 2.2.5.RELEASE + 2021.0.5.0 1.2.3 @@ -35,8 +35,8 @@ 1.9.1 29.0-jre 1.5.21 - 2.9.2 - 2.9.2 + 3.0.0 + 3.0.0 1.16.9 5.2.0 6.2 @@ -129,6 +129,10 @@ javax.servlet-api provided + + org.springframework.boot + spring-boot-autoconfigure + diff --git a/sop-common/sop-service-common/src/main/java/com/gitee/sop/servercommon/configuration/ServiceConfiguration.java b/sop-common/sop-service-common/src/main/java/com/gitee/sop/servercommon/configuration/ServiceConfiguration.java index 460497da..6d606d1c 100644 --- a/sop-common/sop-service-common/src/main/java/com/gitee/sop/servercommon/configuration/ServiceConfiguration.java +++ b/sop-common/sop-service-common/src/main/java/com/gitee/sop/servercommon/configuration/ServiceConfiguration.java @@ -37,7 +37,7 @@ public class ServiceConfiguration extends SpringmvcConfiguration { // 在元数据中新增启动时间,不能修改这个值,不然网关拉取接口会有问题 // 如果没有这个值,网关会忽略这个服务 metadata.put("server.startup-time", String.valueOf(System.currentTimeMillis())); - return new NacosWatch(nacosServiceManager, nacosDiscoveryProperties, taskScheduler); + return new NacosWatch(nacosServiceManager, nacosDiscoveryProperties); } } diff --git a/sop-common/sop-service-common/src/main/java/com/gitee/sop/servercommon/swagger/CustomModelToSwaggerMapper.java b/sop-common/sop-service-common/src/main/java/com/gitee/sop/servercommon/swagger/CustomModelToSwaggerMapper.java deleted file mode 100644 index 0f2c9a64..00000000 --- a/sop-common/sop-service-common/src/main/java/com/gitee/sop/servercommon/swagger/CustomModelToSwaggerMapper.java +++ /dev/null @@ -1,20 +0,0 @@ -package com.gitee.sop.servercommon.swagger; - -import io.swagger.models.parameters.Parameter; -import springfox.documentation.swagger2.mappers.ServiceModelToSwagger2MapperImpl; - -import java.util.Comparator; -import java.util.List; -import java.util.stream.Collectors; - -public class CustomModelToSwaggerMapper extends ServiceModelToSwagger2MapperImpl { - - @Override - protected List parameterListToParameterList(List list) { - // list需要根据order|postion排序 - list = list.stream() - .sorted(Comparator.comparingInt(springfox.documentation.service.Parameter::getOrder)) - .collect(Collectors.toList()); - return super.parameterListToParameterList(list); - } -} diff --git a/sop-common/sop-service-common/src/main/java/com/gitee/sop/servercommon/swagger/CustomSwaggerParameterBuilder.java b/sop-common/sop-service-common/src/main/java/com/gitee/sop/servercommon/swagger/CustomSwaggerParameterBuilder.java index e45ef2c3..4e702d02 100644 --- a/sop-common/sop-service-common/src/main/java/com/gitee/sop/servercommon/swagger/CustomSwaggerParameterBuilder.java +++ b/sop-common/sop-service-common/src/main/java/com/gitee/sop/servercommon/swagger/CustomSwaggerParameterBuilder.java @@ -1,7 +1,6 @@ package com.gitee.sop.servercommon.swagger; import com.google.common.base.Function; -import com.google.common.base.Optional; import com.google.common.base.Strings; import com.google.common.collect.Lists; import io.swagger.annotations.ApiModelProperty; @@ -24,6 +23,7 @@ import springfox.documentation.swagger.schema.ApiModelProperties; import java.util.ArrayList; import java.util.Arrays; import java.util.List; +import java.util.Optional; import static springfox.documentation.swagger.common.SwaggerPluginSupport.SWAGGER_PLUGIN_ORDER; @@ -66,7 +66,7 @@ public class CustomSwaggerParameterBuilder implements ExpandedParameterBuilderPl private void fromApiParam(ParameterExpansionContext context, ApiParam apiParam) { String allowableProperty = Strings.emptyToNull(apiParam.allowableValues()); AllowableValues allowable = allowableValues( - Optional.fromNullable(allowableProperty), + Optional.ofNullable(allowableProperty), context.getFieldType().getErasedType()); maybeSetParameterName(context, apiParam.name()) @@ -88,7 +88,7 @@ public class CustomSwaggerParameterBuilder implements ExpandedParameterBuilderPl private void fromApiModelProperty(ParameterExpansionContext context, ApiModelProperty apiModelProperty) { String allowableProperty = Strings.emptyToNull(apiModelProperty.allowableValues()); AllowableValues allowable = allowableValues( - Optional.fromNullable(allowableProperty), + Optional.ofNullable(allowableProperty), context.getFieldType().getErasedType()); maybeSetParameterName(context, apiModelProperty.name()) diff --git a/sop-common/sop-service-common/src/main/java/com/gitee/sop/servercommon/swagger/DocumentationPluginsManagerExt.java b/sop-common/sop-service-common/src/main/java/com/gitee/sop/servercommon/swagger/DocumentationPluginsManagerExt.java index c44c9d8a..75e3be42 100644 --- a/sop-common/sop-service-common/src/main/java/com/gitee/sop/servercommon/swagger/DocumentationPluginsManagerExt.java +++ b/sop-common/sop-service-common/src/main/java/com/gitee/sop/servercommon/swagger/DocumentationPluginsManagerExt.java @@ -6,7 +6,6 @@ import com.fasterxml.classmate.members.RawField; import com.gitee.sop.servercommon.annotation.BizCode; import com.gitee.sop.servercommon.annotation.Open; import com.gitee.sop.servercommon.bean.ServiceConfig; -import com.google.common.base.Optional; import io.swagger.annotations.Api; import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiOperation; @@ -24,10 +23,7 @@ import springfox.documentation.spring.web.plugins.DocumentationPluginsManager; import java.lang.reflect.Field; import java.lang.reflect.ParameterizedType; import java.lang.reflect.Type; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import java.util.Objects; +import java.util.*; import java.util.stream.Collectors; import java.util.stream.Stream; diff --git a/sop-common/sop-service-common/src/main/java/com/gitee/sop/servercommon/swagger/SwaggerSupport.java b/sop-common/sop-service-common/src/main/java/com/gitee/sop/servercommon/swagger/SwaggerSupport.java index 6897293c..65e42bcb 100644 --- a/sop-common/sop-service-common/src/main/java/com/gitee/sop/servercommon/swagger/SwaggerSupport.java +++ b/sop-common/sop-service-common/src/main/java/com/gitee/sop/servercommon/swagger/SwaggerSupport.java @@ -29,12 +29,6 @@ public abstract class SwaggerSupport { return new DocumentationPluginsManagerExt(); } - @Bean - @Primary - public CustomModelToSwaggerMapper customModelToSwaggerMapper() { - return new CustomModelToSwaggerMapper(); - } - @Bean @Primary public CustomSwaggerParameterBuilder customSwaggerParameterBuilder( diff --git a/sop-example/sop-springmvc/pom.xml b/sop-example/sop-springmvc/pom.xml index 055db4cc..52a793a7 100644 --- a/sop-example/sop-springmvc/pom.xml +++ b/sop-example/sop-springmvc/pom.xml @@ -107,14 +107,7 @@ io.springfox springfox-swagger2 - 2.9.2 - - com.github.xiaoymin - swagger-bootstrap-ui - 1.9.5 - - diff --git a/sop-example/sop-springmvc/src/main/java/com/gitee/app/config/OpenServiceConfig.java b/sop-example/sop-springmvc/src/main/java/com/gitee/app/config/OpenServiceConfig.java index 3ff8e33b..ff464c16 100644 --- a/sop-example/sop-springmvc/src/main/java/com/gitee/app/config/OpenServiceConfig.java +++ b/sop-example/sop-springmvc/src/main/java/com/gitee/app/config/OpenServiceConfig.java @@ -4,7 +4,7 @@ import com.alibaba.nacos.api.annotation.NacosInjected; import com.alibaba.nacos.api.exception.NacosException; import com.alibaba.nacos.api.naming.NamingService; import com.alibaba.nacos.api.naming.pojo.Instance; -import com.alibaba.nacos.client.naming.utils.NetUtils; +import com.alibaba.nacos.api.utils.NetUtils; import com.alibaba.nacos.spring.context.annotation.discovery.EnableNacosDiscovery; import com.gitee.sop.servercommon.configuration.SpringmvcConfiguration; import lombok.extern.slf4j.Slf4j; diff --git a/sop-example/sop-story/pom.xml b/sop-example/sop-story/pom.xml index 1d78e946..f7c0a1c3 100644 --- a/sop-example/sop-story/pom.xml +++ b/sop-example/sop-story/pom.xml @@ -47,18 +47,12 @@ io.springfox - springfox-swagger2 - 2.9.2 + springfox-boot-starter + com.github.xiaoymin - swagger-bootstrap-ui - 1.9.6 - - - io.springfox - springfox-swagger-ui - 2.9.2 + knife4j-spring-boot-starter diff --git a/sop-example/sop-story/src/main/java/com/gitee/sop/storyweb/controller/param/CategoryParam.java b/sop-example/sop-story/src/main/java/com/gitee/sop/storyweb/controller/param/CategoryParam.java index 12b56289..0fd791e5 100644 --- a/sop-example/sop-story/src/main/java/com/gitee/sop/storyweb/controller/param/CategoryParam.java +++ b/sop-example/sop-story/src/main/java/com/gitee/sop/storyweb/controller/param/CategoryParam.java @@ -3,6 +3,7 @@ package com.gitee.sop.storyweb.controller.param; import io.swagger.annotations.ApiModelProperty; import lombok.Data; +import java.io.Serializable; import java.util.Date; @Data diff --git a/sop-example/sop-story/src/main/resources/application.properties b/sop-example/sop-story/src/main/resources/application.properties index 257b3064..3ab49793 100644 --- a/sop-example/sop-story/src/main/resources/application.properties +++ b/sop-example/sop-story/src/main/resources/application.properties @@ -1 +1,2 @@ -spring.profiles.active=dev \ No newline at end of file +spring.profiles.active=dev +spring.mvc.pathmatch.matching-strategy=ant_path_matcher \ No newline at end of file diff --git a/sop-gateway/src/main/java/com/gitee/sop/gateway/SopGatewayApplication.java b/sop-gateway/src/main/java/com/gitee/sop/gateway/SopGatewayApplication.java index ebcc7e92..2b536bd1 100644 --- a/sop-gateway/src/main/java/com/gitee/sop/gateway/SopGatewayApplication.java +++ b/sop-gateway/src/main/java/com/gitee/sop/gateway/SopGatewayApplication.java @@ -1,8 +1,12 @@ package com.gitee.sop.gateway; +import org.mybatis.spring.annotation.MapperScan; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; +@MapperScan(basePackages = { + "com.gitee.sop.gateway.mapper" +}) @SpringBootApplication(scanBasePackages = "com.gitee.sop") public class SopGatewayApplication { diff --git a/sop-gateway/src/main/java/com/gitee/sop/gateway/config/MyConfig.java b/sop-gateway/src/main/java/com/gitee/sop/gateway/config/MyConfig.java index 9d32bba9..d2c5e42a 100644 --- a/sop-gateway/src/main/java/com/gitee/sop/gateway/config/MyConfig.java +++ b/sop-gateway/src/main/java/com/gitee/sop/gateway/config/MyConfig.java @@ -1,7 +1,7 @@ package com.gitee.sop.gateway.config; import com.gitee.sop.gatewaycommon.bean.ApiConfig; -import org.apache.commons.lang.StringUtils; +import org.apache.commons.lang3.StringUtils; import org.springframework.stereotype.Component; import javax.annotation.PostConstruct; diff --git a/sop-gateway/src/main/java/com/gitee/sop/gateway/entity/ConfigGray.java b/sop-gateway/src/main/java/com/gitee/sop/gateway/entity/ConfigGray.java index 15da8353..29f68024 100644 --- a/sop-gateway/src/main/java/com/gitee/sop/gateway/entity/ConfigGray.java +++ b/sop-gateway/src/main/java/com/gitee/sop/gateway/entity/ConfigGray.java @@ -2,11 +2,8 @@ package com.gitee.sop.gateway.entity; import lombok.Data; -import javax.persistence.Column; -import javax.persistence.GeneratedValue; -import javax.persistence.GenerationType; -import javax.persistence.Id; -import javax.persistence.Table; +import com.gitee.fastmybatis.annotation.Pk; +import com.gitee.fastmybatis.annotation.Table; import java.util.Date; @@ -16,12 +13,9 @@ import java.util.Date; * * @author tanghc */ -@Table(name = "config_gray") +@Table(name = "config_gray",pk = @Pk(name = "id")) @Data public class ConfigGray { - @Id - @Column(name = "id") - @GeneratedValue(strategy = GenerationType.IDENTITY) /** 数据库字段:id */ private Long id; diff --git a/sop-gateway/src/main/java/com/gitee/sop/gateway/entity/ConfigGrayInstance.java b/sop-gateway/src/main/java/com/gitee/sop/gateway/entity/ConfigGrayInstance.java index 81bc95ce..6623f3de 100644 --- a/sop-gateway/src/main/java/com/gitee/sop/gateway/entity/ConfigGrayInstance.java +++ b/sop-gateway/src/main/java/com/gitee/sop/gateway/entity/ConfigGrayInstance.java @@ -2,11 +2,8 @@ package com.gitee.sop.gateway.entity; import lombok.Data; -import javax.persistence.Column; -import javax.persistence.GeneratedValue; -import javax.persistence.GenerationType; -import javax.persistence.Id; -import javax.persistence.Table; +import com.gitee.fastmybatis.annotation.Pk; +import com.gitee.fastmybatis.annotation.Table; import java.util.Date; @@ -15,12 +12,9 @@ import java.util.Date; * * @author tanghc */ -@Table(name = "config_gray_instance") +@Table(name = "config_gray_instance",pk = @Pk(name = "id")) @Data public class ConfigGrayInstance { - @Id - @Column(name = "id") - @GeneratedValue(strategy = GenerationType.IDENTITY) /** 数据库字段:id */ private Long id; diff --git a/sop-gateway/src/main/java/com/gitee/sop/gateway/entity/ConfigLimit.java b/sop-gateway/src/main/java/com/gitee/sop/gateway/entity/ConfigLimit.java index 30bd01c4..ffd090c8 100644 --- a/sop-gateway/src/main/java/com/gitee/sop/gateway/entity/ConfigLimit.java +++ b/sop-gateway/src/main/java/com/gitee/sop/gateway/entity/ConfigLimit.java @@ -2,11 +2,8 @@ package com.gitee.sop.gateway.entity; import lombok.Data; -import javax.persistence.Column; -import javax.persistence.GeneratedValue; -import javax.persistence.GenerationType; -import javax.persistence.Id; -import javax.persistence.Table; +import com.gitee.fastmybatis.annotation.Pk; +import com.gitee.fastmybatis.annotation.Table; import java.util.Date; @@ -16,12 +13,9 @@ import java.util.Date; * * @author tanghc */ -@Table(name = "config_limit") +@Table(name = "config_limit",pk = @Pk(name = "id")) @Data public class ConfigLimit { - @Id - @Column(name = "id") - @GeneratedValue(strategy = GenerationType.IDENTITY) /** 数据库字段:id */ private Long id; diff --git a/sop-gateway/src/main/java/com/gitee/sop/gateway/entity/ConfigRouteBase.java b/sop-gateway/src/main/java/com/gitee/sop/gateway/entity/ConfigRouteBase.java index 47c3f22e..cd0364bf 100644 --- a/sop-gateway/src/main/java/com/gitee/sop/gateway/entity/ConfigRouteBase.java +++ b/sop-gateway/src/main/java/com/gitee/sop/gateway/entity/ConfigRouteBase.java @@ -2,11 +2,8 @@ package com.gitee.sop.gateway.entity; import lombok.Data; -import javax.persistence.Column; -import javax.persistence.GeneratedValue; -import javax.persistence.GenerationType; -import javax.persistence.Id; -import javax.persistence.Table; +import com.gitee.fastmybatis.annotation.Pk; +import com.gitee.fastmybatis.annotation.Table; /** @@ -15,12 +12,9 @@ import javax.persistence.Table; * * @author tanghc */ -@Table(name = "config_route_base") +@Table(name = "config_route_base",pk = @Pk(name = "id")) @Data public class ConfigRouteBase { - @Id - @Column(name = "id") - @GeneratedValue(strategy = GenerationType.IDENTITY) /** 数据库字段:id */ private Long id; diff --git a/sop-gateway/src/main/java/com/gitee/sop/gateway/entity/ConfigServiceRoute.java b/sop-gateway/src/main/java/com/gitee/sop/gateway/entity/ConfigServiceRoute.java index 855fbfa7..e157a0c7 100644 --- a/sop-gateway/src/main/java/com/gitee/sop/gateway/entity/ConfigServiceRoute.java +++ b/sop-gateway/src/main/java/com/gitee/sop/gateway/entity/ConfigServiceRoute.java @@ -2,11 +2,8 @@ package com.gitee.sop.gateway.entity; import lombok.Data; -import javax.persistence.Column; -import javax.persistence.GeneratedValue; -import javax.persistence.GenerationType; -import javax.persistence.Id; -import javax.persistence.Table; +import com.gitee.fastmybatis.annotation.Pk; +import com.gitee.fastmybatis.annotation.Table; import java.util.Date; @@ -16,12 +13,9 @@ import java.util.Date; * * @author tanghc */ -@Table(name = "config_service_route") +@Table(name = "config_service_route",pk = @Pk(name = "id")) @Data public class ConfigServiceRoute { - @Id - @Column(name = "id") - @GeneratedValue(strategy = GenerationType.AUTO) /** 数据库字段:id */ private String id; diff --git a/sop-gateway/src/main/java/com/gitee/sop/gateway/entity/IsvInfo.java b/sop-gateway/src/main/java/com/gitee/sop/gateway/entity/IsvInfo.java index 7b9d4e25..40fa45e6 100644 --- a/sop-gateway/src/main/java/com/gitee/sop/gateway/entity/IsvInfo.java +++ b/sop-gateway/src/main/java/com/gitee/sop/gateway/entity/IsvInfo.java @@ -2,11 +2,8 @@ package com.gitee.sop.gateway.entity; import lombok.Data; -import javax.persistence.Column; -import javax.persistence.GeneratedValue; -import javax.persistence.GenerationType; -import javax.persistence.Id; -import javax.persistence.Table; +import com.gitee.fastmybatis.annotation.Pk; +import com.gitee.fastmybatis.annotation.Table; import java.util.Date; @@ -16,12 +13,9 @@ import java.util.Date; * * @author tanghc */ -@Table(name = "isv_info") +@Table(name = "isv_info",pk = @Pk(name = "id")) @Data public class IsvInfo { - @Id - @Column(name = "id") - @GeneratedValue(strategy = GenerationType.IDENTITY) /** 数据库字段:id */ private Long id; diff --git a/sop-gateway/src/main/java/com/gitee/sop/gateway/entity/MonitorInfo.java b/sop-gateway/src/main/java/com/gitee/sop/gateway/entity/MonitorInfo.java index a73b77f6..3b50ac17 100644 --- a/sop-gateway/src/main/java/com/gitee/sop/gateway/entity/MonitorInfo.java +++ b/sop-gateway/src/main/java/com/gitee/sop/gateway/entity/MonitorInfo.java @@ -2,11 +2,8 @@ package com.gitee.sop.gateway.entity; import lombok.Data; -import javax.persistence.Column; -import javax.persistence.GeneratedValue; -import javax.persistence.GenerationType; -import javax.persistence.Id; -import javax.persistence.Table; +import com.gitee.fastmybatis.annotation.Pk; +import com.gitee.fastmybatis.annotation.Table; import java.time.LocalDateTime; import java.util.Date; @@ -17,13 +14,10 @@ import java.util.Date; * * @author tanghc */ -@Table(name = "monitor_info") +@Table(name = "monitor_info",pk = @Pk(name = "id")) @Data public class MonitorInfo { /** 数据库字段:id */ - @Id - @Column(name = "id") - @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; /** 路由id, 数据库字段:route_id */ diff --git a/sop-gateway/src/main/java/com/gitee/sop/gateway/entity/MonitorInfoError.java b/sop-gateway/src/main/java/com/gitee/sop/gateway/entity/MonitorInfoError.java index 1927770a..90b01007 100644 --- a/sop-gateway/src/main/java/com/gitee/sop/gateway/entity/MonitorInfoError.java +++ b/sop-gateway/src/main/java/com/gitee/sop/gateway/entity/MonitorInfoError.java @@ -2,11 +2,8 @@ package com.gitee.sop.gateway.entity; import lombok.Data; -import javax.persistence.Column; -import javax.persistence.GeneratedValue; -import javax.persistence.GenerationType; -import javax.persistence.Id; -import javax.persistence.Table; +import com.gitee.fastmybatis.annotation.Pk; +import com.gitee.fastmybatis.annotation.Table; import java.time.LocalDateTime; import java.util.Date; @@ -16,13 +13,10 @@ import java.util.Date; * * @author tanghc */ -@Table(name = "monitor_info_error") +@Table(name = "monitor_info_error",pk = @Pk(name = "id")) @Data public class MonitorInfoError { /** 数据库字段:id */ - @Id - @Column(name = "id") - @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; /** 错误id,md5Hex(instanceId + routeId + errorMsg), 数据库字段:error_id */ diff --git a/sop-gateway/src/main/java/com/gitee/sop/gateway/entity/PermIsvRole.java b/sop-gateway/src/main/java/com/gitee/sop/gateway/entity/PermIsvRole.java index e8f8614e..4bfcf150 100644 --- a/sop-gateway/src/main/java/com/gitee/sop/gateway/entity/PermIsvRole.java +++ b/sop-gateway/src/main/java/com/gitee/sop/gateway/entity/PermIsvRole.java @@ -2,11 +2,8 @@ package com.gitee.sop.gateway.entity; import lombok.Data; -import javax.persistence.Column; -import javax.persistence.GeneratedValue; -import javax.persistence.GenerationType; -import javax.persistence.Id; -import javax.persistence.Table; +import com.gitee.fastmybatis.annotation.Pk; +import com.gitee.fastmybatis.annotation.Table; import java.util.Date; @@ -16,12 +13,9 @@ import java.util.Date; * * @author tanghc */ -@Table(name = "perm_isv_role") +@Table(name = "perm_isv_role",pk = @Pk(name = "id")) @Data public class PermIsvRole { - @Id - @Column(name = "id") - @GeneratedValue(strategy = GenerationType.IDENTITY) /** 数据库字段:id */ private Long id; diff --git a/sop-gateway/src/main/java/com/gitee/sop/gateway/entity/PermRolePermission.java b/sop-gateway/src/main/java/com/gitee/sop/gateway/entity/PermRolePermission.java index fde9392e..ada30d7a 100644 --- a/sop-gateway/src/main/java/com/gitee/sop/gateway/entity/PermRolePermission.java +++ b/sop-gateway/src/main/java/com/gitee/sop/gateway/entity/PermRolePermission.java @@ -2,11 +2,8 @@ package com.gitee.sop.gateway.entity; import lombok.Data; -import javax.persistence.Column; -import javax.persistence.GeneratedValue; -import javax.persistence.GenerationType; -import javax.persistence.Id; -import javax.persistence.Table; +import com.gitee.fastmybatis.annotation.Pk; +import com.gitee.fastmybatis.annotation.Table; import java.util.Date; @@ -16,12 +13,9 @@ import java.util.Date; * * @author tanghc */ -@Table(name = "perm_role_permission") +@Table(name = "perm_role_permission",pk = @Pk(name = "id")) @Data public class PermRolePermission { - @Id - @Column(name = "id") - @GeneratedValue(strategy = GenerationType.IDENTITY) /** 数据库字段:id */ private Long id; diff --git a/sop-gateway/src/main/java/com/gitee/sop/gateway/interceptor/MonitorRouteInterceptorService.java b/sop-gateway/src/main/java/com/gitee/sop/gateway/interceptor/MonitorRouteInterceptorService.java index 1188ca6c..c995ef8c 100644 --- a/sop-gateway/src/main/java/com/gitee/sop/gateway/interceptor/MonitorRouteInterceptorService.java +++ b/sop-gateway/src/main/java/com/gitee/sop/gateway/interceptor/MonitorRouteInterceptorService.java @@ -1,6 +1,6 @@ package com.gitee.sop.gateway.interceptor; -import com.gitee.sop.gateway.mapper.DbMonitorInfoManager; +import com.gitee.sop.gateway.manager.DbMonitorInfoManager; import com.gitee.sop.gatewaycommon.bean.LRUCache; import com.gitee.sop.gatewaycommon.interceptor.RouteInterceptorContext; import com.gitee.sop.gatewaycommon.monitor.MonitorDTO; diff --git a/sop-gateway/src/main/java/com/gitee/sop/gateway/mapper/DbMonitorInfoManager.java b/sop-gateway/src/main/java/com/gitee/sop/gateway/manager/DbMonitorInfoManager.java similarity index 93% rename from sop-gateway/src/main/java/com/gitee/sop/gateway/mapper/DbMonitorInfoManager.java rename to sop-gateway/src/main/java/com/gitee/sop/gateway/manager/DbMonitorInfoManager.java index aa206b51..5c27e950 100644 --- a/sop-gateway/src/main/java/com/gitee/sop/gateway/mapper/DbMonitorInfoManager.java +++ b/sop-gateway/src/main/java/com/gitee/sop/gateway/manager/DbMonitorInfoManager.java @@ -1,5 +1,7 @@ -package com.gitee.sop.gateway.mapper; +package com.gitee.sop.gateway.manager; +import com.gitee.sop.gateway.mapper.MonitorInfoErrorMapper; +import com.gitee.sop.gateway.mapper.MonitorInfoMapper; import com.gitee.sop.gatewaycommon.monitor.MonitorDTO; import com.gitee.sop.gatewaycommon.monitor.MonitorErrorMsg; import com.gitee.sop.gatewaycommon.monitor.RouteErrorCount; diff --git a/sop-gateway/src/test/java/com/gitee/sop/gateway/ExcludeTest.java b/sop-gateway/src/test/java/com/gitee/sop/gateway/ExcludeTest.java index 6cbb33c0..71001c33 100644 --- a/sop-gateway/src/test/java/com/gitee/sop/gateway/ExcludeTest.java +++ b/sop-gateway/src/test/java/com/gitee/sop/gateway/ExcludeTest.java @@ -1,22 +1,22 @@ -package com.gitee.sop.gateway; - -import junit.framework.TestCase; -import org.apache.commons.lang.StringUtils; - -/** - * @author tanghc - */ -public class ExcludeTest extends TestCase { - public void testRegex() { - String serviceId = "com.aaa.bbb.story-service"; - String sopServiceExcludeRegex = "com\\..*;story\\-.*"; - if (StringUtils.isNotBlank(sopServiceExcludeRegex)) { - String[] regexArr = sopServiceExcludeRegex.split(";"); - for (String regex : regexArr) { - if (serviceId.matches(regex)) { - System.out.println("111"); - } - } - } - } -} +//package com.gitee.sop.gateway; +// +//import junit.framework.TestCase; +//import org.apache.commons.lang3.StringUtils; +// +///** +// * @author tanghc +// */ +//public class ExcludeTest extends TestCase { +// public void testRegex() { +// String serviceId = "com.aaa.bbb.story-service"; +// String sopServiceExcludeRegex = "com\\..*;story\\-.*"; +// if (StringUtils.isNotBlank(sopServiceExcludeRegex)) { +// String[] regexArr = sopServiceExcludeRegex.split(";"); +// for (String regex : regexArr) { +// if (serviceId.matches(regex)) { +// System.out.println("111"); +// } +// } +// } +// } +//} diff --git a/sop-website/sop-website-server/src/main/java/com/gitee/sop/websiteserver/bean/DocParameter.java b/sop-website/sop-website-server/src/main/java/com/gitee/sop/websiteserver/bean/DocParameter.java index 7efe5de8..bb247199 100644 --- a/sop-website/sop-website-server/src/main/java/com/gitee/sop/websiteserver/bean/DocParameter.java +++ b/sop-website/sop-website-server/src/main/java/com/gitee/sop/websiteserver/bean/DocParameter.java @@ -2,7 +2,7 @@ package com.gitee.sop.websiteserver.bean; import com.alibaba.fastjson.annotation.JSONField; import lombok.Data; -import org.apache.commons.lang.StringUtils; +import org.apache.commons.lang3.StringUtils; import java.util.List; import java.util.concurrent.atomic.AtomicInteger; diff --git a/sop-website/sop-website-server/src/main/java/com/gitee/sop/websiteserver/bean/Validates.java b/sop-website/sop-website-server/src/main/java/com/gitee/sop/websiteserver/bean/Validates.java index 722ff7bf..31fdd78e 100644 --- a/sop-website/sop-website-server/src/main/java/com/gitee/sop/websiteserver/bean/Validates.java +++ b/sop-website/sop-website-server/src/main/java/com/gitee/sop/websiteserver/bean/Validates.java @@ -2,7 +2,7 @@ package com.gitee.sop.websiteserver.bean; import com.gitee.sop.gatewaycommon.exception.ApiException; import com.gitee.sop.gatewaycommon.message.ErrorMeta; -import org.apache.commons.lang.StringUtils; +import org.apache.commons.lang3.StringUtils; import java.util.function.Supplier; diff --git a/sop-website/sop-website-server/src/main/java/com/gitee/sop/websiteserver/config/WebsiteConfig.java b/sop-website/sop-website-server/src/main/java/com/gitee/sop/websiteserver/config/WebsiteConfig.java index 995d9c21..ef0b85ac 100644 --- a/sop-website/sop-website-server/src/main/java/com/gitee/sop/websiteserver/config/WebsiteConfig.java +++ b/sop-website/sop-website-server/src/main/java/com/gitee/sop/websiteserver/config/WebsiteConfig.java @@ -33,12 +33,12 @@ import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; @Configuration public class WebsiteConfig implements WebMvcConfigurer, EnvironmentAware, ApplicationContextAware { - @Autowired - private RegistryListener registryListener; + private ApplicationContext applicationContext; @Override public void setApplicationContext(ApplicationContext applicationContext) throws BeansException { SpringContext.setApplicationContext(applicationContext); + this.applicationContext = applicationContext; } @Override @@ -88,7 +88,7 @@ public class WebsiteConfig implements WebMvcConfigurer, EnvironmentAware, Applic */ @EventListener(classes = HeartbeatEvent.class) public void listenNacosEvent(ApplicationEvent heartbeatEvent) { - registryListener.onEvent(heartbeatEvent); + applicationContext.getBean(RegistryListener.class).onEvent(heartbeatEvent); } @Bean diff --git a/sop-website/sop-website-server/src/main/java/com/gitee/sop/websiteserver/entity/IspResource.java b/sop-website/sop-website-server/src/main/java/com/gitee/sop/websiteserver/entity/IspResource.java index c3048ada..d81ad060 100644 --- a/sop-website/sop-website-server/src/main/java/com/gitee/sop/websiteserver/entity/IspResource.java +++ b/sop-website/sop-website-server/src/main/java/com/gitee/sop/websiteserver/entity/IspResource.java @@ -2,11 +2,8 @@ package com.gitee.sop.websiteserver.entity; import lombok.Data; -import javax.persistence.Column; -import javax.persistence.GeneratedValue; -import javax.persistence.GenerationType; -import javax.persistence.Id; -import javax.persistence.Table; +import com.gitee.fastmybatis.annotation.Pk; +import com.gitee.fastmybatis.annotation.Table; import java.util.Date; @@ -16,13 +13,10 @@ import java.util.Date; * * @author tanghc */ -@Table(name = "isp_resource") +@Table(name = "isp_resource",pk = @Pk(name = "id")) @Data public class IspResource { /** 数据库字段:id */ - @Id - @Column(name = "id") - @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; /** 资源名称, 数据库字段:name */ diff --git a/sop-website/sop-website-server/src/main/java/com/gitee/sop/websiteserver/entity/IsvInfo.java b/sop-website/sop-website-server/src/main/java/com/gitee/sop/websiteserver/entity/IsvInfo.java index 84dfc922..36e45c62 100644 --- a/sop-website/sop-website-server/src/main/java/com/gitee/sop/websiteserver/entity/IsvInfo.java +++ b/sop-website/sop-website-server/src/main/java/com/gitee/sop/websiteserver/entity/IsvInfo.java @@ -2,11 +2,8 @@ package com.gitee.sop.websiteserver.entity; import lombok.Data; -import javax.persistence.Column; -import javax.persistence.GeneratedValue; -import javax.persistence.GenerationType; -import javax.persistence.Id; -import javax.persistence.Table; +import com.gitee.fastmybatis.annotation.Pk; +import com.gitee.fastmybatis.annotation.Table; import java.util.Date; @@ -16,12 +13,9 @@ import java.util.Date; * * @author tanghc */ -@Table(name = "isv_info") +@Table(name = "isv_info",pk = @Pk(name = "id")) @Data public class IsvInfo { - @Id - @Column(name = "id") - @GeneratedValue(strategy = GenerationType.IDENTITY) /** 数据库字段:id */ private Long id; diff --git a/sop-website/sop-website-server/src/main/java/com/gitee/sop/websiteserver/entity/IsvKeys.java b/sop-website/sop-website-server/src/main/java/com/gitee/sop/websiteserver/entity/IsvKeys.java index c1a81ddc..e9026ba2 100644 --- a/sop-website/sop-website-server/src/main/java/com/gitee/sop/websiteserver/entity/IsvKeys.java +++ b/sop-website/sop-website-server/src/main/java/com/gitee/sop/websiteserver/entity/IsvKeys.java @@ -2,11 +2,8 @@ package com.gitee.sop.websiteserver.entity; import lombok.Data; -import javax.persistence.Column; -import javax.persistence.GeneratedValue; -import javax.persistence.GenerationType; -import javax.persistence.Id; -import javax.persistence.Table; +import com.gitee.fastmybatis.annotation.Pk; +import com.gitee.fastmybatis.annotation.Table; import java.util.Date; @@ -16,12 +13,9 @@ import java.util.Date; * * @author tanghc */ -@Table(name = "isv_keys") +@Table(name = "isv_keys",pk = @Pk(name = "id")) @Data public class IsvKeys { - @Id - @Column(name = "id") - @GeneratedValue(strategy = GenerationType.IDENTITY) /** 数据库字段:id */ private Long id; diff --git a/sop-website/sop-website-server/src/main/java/com/gitee/sop/websiteserver/entity/UserAccount.java b/sop-website/sop-website-server/src/main/java/com/gitee/sop/websiteserver/entity/UserAccount.java index b36eb04b..1ba9b18f 100644 --- a/sop-website/sop-website-server/src/main/java/com/gitee/sop/websiteserver/entity/UserAccount.java +++ b/sop-website/sop-website-server/src/main/java/com/gitee/sop/websiteserver/entity/UserAccount.java @@ -2,11 +2,8 @@ package com.gitee.sop.websiteserver.entity; import lombok.Data; -import javax.persistence.Column; -import javax.persistence.GeneratedValue; -import javax.persistence.GenerationType; -import javax.persistence.Id; -import javax.persistence.Table; +import com.gitee.fastmybatis.annotation.Pk; +import com.gitee.fastmybatis.annotation.Table; import java.util.Date; @@ -16,13 +13,10 @@ import java.util.Date; * * @author tanghc */ -@Table(name = "user_account") +@Table(name = "user_account",pk = @Pk(name = "id")) @Data public class UserAccount { /** 数据库字段:id */ - @Id - @Column(name = "id") - @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; /** 用户名(邮箱), 数据库字段:username */ diff --git a/sop-website/sop-website-server/src/main/java/com/gitee/sop/websiteserver/listener/ServiceDocListener.java b/sop-website/sop-website-server/src/main/java/com/gitee/sop/websiteserver/listener/ServiceDocListener.java index 1a1652bf..3126d1f5 100644 --- a/sop-website/sop-website-server/src/main/java/com/gitee/sop/websiteserver/listener/ServiceDocListener.java +++ b/sop-website/sop-website-server/src/main/java/com/gitee/sop/websiteserver/listener/ServiceDocListener.java @@ -41,7 +41,7 @@ public class ServiceDocListener extends BaseServiceListener { , instance.getIp() + ":" + instance.getPort()) ); } else { - log.error("加载文档失败, status:{}, body:{}", responseEntity.getStatusCodeValue(), responseEntity.getBody()); + log.error("加载服务文档,serviceId={}, 机器={}, status:{}, body:{}" , serviceId , instance.getIp() + ":" + instance.getPort(), responseEntity.getStatusCodeValue(), responseEntity.getBody()); } } diff --git a/sop-website/sop-website-server/src/main/java/com/gitee/sop/websiteserver/manager/SwaggerDocParser.java b/sop-website/sop-website-server/src/main/java/com/gitee/sop/websiteserver/manager/SwaggerDocParser.java index 321da8fa..f1b23e70 100644 --- a/sop-website/sop-website-server/src/main/java/com/gitee/sop/websiteserver/manager/SwaggerDocParser.java +++ b/sop-website/sop-website-server/src/main/java/com/gitee/sop/websiteserver/manager/SwaggerDocParser.java @@ -10,7 +10,7 @@ import com.gitee.sop.websiteserver.bean.DocModule; import com.gitee.sop.websiteserver.bean.DocParameter; import com.gitee.sop.websiteserver.bean.DocParserContext; import com.google.common.collect.Sets; -import org.apache.commons.lang.StringUtils; +import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.math.NumberUtils; import org.springframework.beans.BeanUtils; import org.springframework.util.CollectionUtils;