diff --git "a/doc/docs/files/10011_\351\241\271\347\233\256\346\216\245\345\205\245\345\210\260SOP.md" "b/doc/docs/files/10011_\351\241\271\347\233\256\346\216\245\345\205\245\345\210\260SOP.md"
index 7f4e5e18b31179bbd2a3be1a709e0c8848d10ad3..cc8826e0ff243dc5e8cf155f0878f1d176ded988 100644
--- "a/doc/docs/files/10011_\351\241\271\347\233\256\346\216\245\345\205\245\345\210\260SOP.md"
+++ "b/doc/docs/files/10011_\351\241\271\347\233\256\346\216\245\345\205\245\345\210\260SOP.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 0c4069c79a07d34af7709a69157f55669e64dff2..1f43e5a0bcf7c3da8a71451d75b1d5a22e3aee4f 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}
-
+
+ com.baomidou
+ mybatis-plus-boot-starter
+ ${mybatis-plus.version}
+
+
+ io.springfox
+ springfox-swagger2
+ ${springfox.version}
+
io.springfox
springfox-spring-web
- ${springfox-spring-web.version}
+ ${springfox.version}
- io.swagger
- swagger-annotations
- ${swagger.version}
+ io.springfox
+ springfox-swagger-ui
+ ${springfox.version}
io.springfox
- springfox-swagger2
- ${springfox-swagger2.version}
+ 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 17c9900794870c80a488873450a52a5e4b2f71ed..7ae6261b863c3229303944571e86799e07c52de1 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 cf85d18544e8be6edf55f999999d6fc314856941..a9f2d55872c87bf2e2205e28776623c71b98b487 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 cc89f3e677fa4235e1d63dafce54e3b9b4c9d902..9f40a128c406af74633ef9dfba628d2b6691a674 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 171ba5996e36306ffe97bbdfb6d6bdd2495343e0..ada31ccdb0c8ae72bf5a7e958f764976aba1ca5a 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 4da5cf8a4b2d0f4363720160a2f543f654d6338b..1c576bc51707f2f0dceb927cd255b13840649ce2 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 0a7b60f06c8a4d4e4f3c6b6b36b4434a4ca6e317..735a20ba32c1ec749e574d624ab10d60c0b0c664 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 9c1d1254245f3228afbd5b50041ec4111ee16dfc..73a21d0e0f677429aa3cdfa1d116eb7cea0fe878 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 30b817af1a82c51d1b7058f2b1971c6cf7d02d17..53da7c3ef82531f8b3e1fe191f03dbeb44342eb2 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 021f3e5d45e01ad3f68f21484a6c22b5eb916087..ad6491ebca83215696644e2b877a5011db0a0a75 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 d44330a4c22bdc5c1e767b4e4ca41536d3ab31a6..8017e9476b7e074c768037e5b5779124807e5a57 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 0398942099e951e69db8437044d7405379fd88e3..3841fc22da8cf97e4a556c86c8921abea1a711c9 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 5b7213098ea4d39750b99e8bba5b54afee5c7ee5..ecc900be416ac9e8ff2daee65cd39c68fcb2e09e 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 69dcba9e03aa865e37dcd48a6a24fd7b655eb238..982f73099632239d2066d43454ceb42584d60690 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 3df26d022a3382a33aa6cf392afa6bdb0747d80c..ec528b94002018d01b195f2f098489f9fee8bf8c 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 77630e611866dcc61ca12d6e0c312c753584d131..b7d268e4de4e4f0c5c99a0fd79df2bebada442b5 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 f8d502b38c010934b71e712e867a28d4d0de95c9..e849299416c28e2b2e2b201dc9bc311d50c30d16 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 8f87d0985aaf778921660e46bd9c771456d52d43..6e6b85f2894d0d010205ee6c4f6f4d80b454065c 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 21a2afd42c002ffe67efa03602fc715a8aac56ce..3fe650a3c37f5c3bba582f8d403c0e7de4becd73 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 64361500718aad17f1ab83135754918cae406dbf..97bd20788a20a0d76567d7c8bce88b70d99a7234 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 bf0ec7c379befe63df8f8dfd407aa30eb62e3c15..07aac187730771e40289246ac823ad9481a229d4 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 8542f9289708a74a9d207109b985640f0cf2a1cf..8b6cbe8c71ff29f020ef27f57443cecc277fa11f 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 68d322ddee0ac1dfb801655d5bca59b55384cc3a..8a154a825f5cd0b2d9dbe7b426d9aa0d7c584db6 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 e55f20bfd5f9f63738436c0f94d08ba5483044b3..02e49bcf9571a3be5d02fa4a63dc75d854f05d15 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 7dc641d47386056fb99b21d1a1c2a952c495869d..18b8cef512e958efb54d74f97da0a0a2161f064b 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 659c49aa5bb54584ea8ea05ac5a04ef8cf05e4f0..8edb02b453d094a88f7d4f8da6767f8f648343c7 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 ab6764bd990c0207082ce099acbf90e6cf0301ac..41074dd38b6554b44c770df6fa540eef6b412bb6 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 e00b1d56fe5ca25a99e0aa303d4b89378aebc600..8aa3bb3b798ee7a337c8d8c4c127b32e2bde0c34 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 49ff0574fadeeef37f7e0e3f4db87c24d77c5296..d07b9cd092c43de7b7f2aa3df92082a0cd27bae2 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 40de5cf20b62d1b029740071fe84fe16b4cce5ec..20e22d0b39c4a2b80c49ec7dce5d68bf7a466bb6 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 6f04187e66f5f277d562ca89e26edc2b05d0c28d..8e4c9493926dc2bb102de5bd2d7b98989ae9c20d 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 b048c8af0011e911c2187da6e6d8e495f316c330..0000000000000000000000000000000000000000
--- 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 8a6f888692202e793f29380ea90e95f6e1f43330..0000000000000000000000000000000000000000
--- 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 e4eb72d5ef02e4a754fbfb8994baad77eaa4ccbf..0000000000000000000000000000000000000000
--- 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 324083239c1d08c357530c52c01a64b6d4de94e3..0000000000000000000000000000000000000000
--- 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 0000000000000000000000000000000000000000..f0e91f763550f08e62098e3d7f3c4df94e994f4f
--- /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 0000000000000000000000000000000000000000..9ce6048c5e9e749d446155e028939080ac09cf7d
--- /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 11dba443950503731c0b52b9b3f549b9f10ad6c5..0000000000000000000000000000000000000000
--- 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 a91bc66594965673b867e01c6d9e9191b74ec75a..0000000000000000000000000000000000000000
--- 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 9c1788bfe2025072da6907d1f7c060f818fe5dda..89684259b1a71af38ed3b198a3e30524cef619ed 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 bd4d42f45f18ed1f073c8c65823b3cc8a4342179..9dbd1381945b4c2a7b005fc71131539d9f897169 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 06db6e2422c61966dffbe1f080cd5930f1116837..cce0c62231a0815a1e7d708b06504eb7c6d24d85 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 9a5748566bffd2f8669606e9fbbbf2bae14f8cf8..ceda396dc9b3dd65fd2ca27b02dd4cc6cbdcd2cf 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 1919ca5158aea9103dc603adc81a3df61ac2e971..518e59be50e9ec20728160930ecd2860c69314c6 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 3e279a845e5b079d50798631a52db750f6af1cf5..452048e10ada2cf71114d085926349b48ed30bd3 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 460497da10b0871079cdb6d82a2dc4352b1e199d..6d606d1c0e9157232050ef095552b02c7029d3fb 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 0f2c9a643953a4ed7a78da94bebacd09d15a2dcd..0000000000000000000000000000000000000000
--- 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 e45ef2c31bd4061d8d34769e0e7977ed2c523360..4e702d02dbd3462483215fdd432da837aecb3966 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 c44c9d8ac0e5081852e6def70d3fbe4b123d2994..75e3be4289a8f3637f71d2e0c13f526e0a2930fc 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 6897293cd2ab85b83b33bebf629d8148ff0c81ac..65e42bcb1f798350fe519a329c7f061c6ee17504 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 055db4cc2b0cdc50407028495e19d61f8ddb2127..52a793a78bbc321c93d371e4fc5f2feb9210b7d6 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 3ff8e33b7c321add910923065463d247ee9ed66f..ff464c16e659675a040891703dd735070c5e1c60 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 1d78e946535183957250fbc3a10e2c1e63980436..f7c0a1c3290f594ad319bf5f2e84721274910ced 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 12b56289e2f0701b6fd1df72e462f14523295e9c..0fd791e5c4308d3e0b4edabaa1eb301e1fbeb4f0 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 257b30648523ed1765c075c8903efdea33a7a5c2..3ab49793dd0ab1cb0eee1c49740560391f2392e8 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 ebcc7e9229734c8605164c36e50ea89982b27f0b..2b536bd11cfce6826a9a8abdaa005b8b7c37fb14 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 9d32bba9f2fc2a0527cc4f1b80a2afd898c68947..d2c5e42a147b651e697fd79589e7f37c6bf99b37 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 15da8353cad74c6dbbc1595d91c19e6b7d9345d4..29f6802493cd684dd9e2795212e0c406543b8b67 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 81bc95ce5d805fcb70fc0d255aec661cae919775..6623f3de0340504e34d42b05785d120a3283ee33 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 30bd01c4e380b96d840b6b9e6c3148aaf80276a3..ffd090c87f832da796e4913338bb113314acc214 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 47c3f22ec2f7ce87235c99513c1e73194befc443..cd0364bfcd9570e6f28c553a5cc9805c37f101bd 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 855fbfa747c4acb05e0616ee96bdf9d884522ca1..e157a0c7dc8437457f9e504444a4495f32488a5e 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 7b9d4e25a23f9361d4a47cc8ef7e7bc21be64eed..40fa45e6ca3dd73238ab954bf8033677273ca7f0 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 a73b77f6336314ebfa79ec92641dd988ead5af0c..3b50ac17056d3a313cbe9cecafa57debef9fd361 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 1927770a8f1973dd15d205132a58f9b6f856ed4b..90b01007bd8373d636d474409c2b2ac54dce4bb4 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 e8f8614e015d39dd42f26cfc9004731fd7816e9d..4bfcf150a7232a427d531ebfc1818a5dd7805a46 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 fde9392e10072221f597ed542773810b13b49744..ada30d7a22cb0988936a5dc04d8f71db65bd9bf1 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 1188ca6ce25301470719c5830b52ba51bf3d44a8..c995ef8c368a05ee3d7c900186f898ac3b1a3c15 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 aa206b5185629450408b171a95aa57f18585946b..5c27e950e396584f45987e79c512d15c66a50bef 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 6cbb33c02bf8db2fea1b9503d2e50e0fe9eceb97..71001c338a755d31f821001e8f578afe4ce513e7 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 7efe5de82115bf796cb8c09c317ecd0a64da4139..bb2471990a0c5b59ed98b3e66f72488436e3e7b2 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 722ff7bf66bdef44a36599757c91885363747d7a..31fdd78efe6fcd42c5b487c8b97923d37476b6a9 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 995d9c215086374c87c18a8d7b1a7a552c35f71a..ef0b85aca3b228cbd41804360e704d9445c68b1f 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 c3048ada4fd6349030f4e982c2977019c18fb2e9..d81ad060488e6bd099d238c8b485d416d6d9116e 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 84dfc922697fe3edc9eef0c1f04cb8ce05268f76..36e45c62137f17a77b39de689bf4e38f21242a7e 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 c1a81ddc8183cbd82adc0b436e4c95ac354bd152..e9026ba22c95086d067afd4c45313a2665cd5d09 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 b36eb04b36110ae094d51a495db9a76958107d25..1ba9b18faffb58a5e19ec5f56ebc1d2b060459da 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 1a1652bf1c48c37fc727477fdc013302e80afd7b..3126d1f5b1031ddf178ccb947457bec6a7a0e009 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 321da8fa0363e64d5e57c007483a064f0e81a52a..f1b23e701d55666a07df027ac41b94814a6286ef 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;