From d74d15f5f33c9effd8bfb06207c99779dd73d7ec Mon Sep 17 00:00:00 2001 From: tanghc Date: Mon, 11 Mar 2019 09:41:33 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E6=B3=A8=E9=87=8A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../configuration/BaseZuulConfiguration.java | 61 +++++++++++++++---- .../zuul/route/SopRouteLocator.java | 7 ++- .../zuul/route/ZuulRouteRepository.java | 1 + .../zuul/route/ZuulZookeeperRouteManager.java | 1 + 4 files changed, 57 insertions(+), 13 deletions(-) diff --git a/sop-gateway-common/src/main/java/com/gitee/sop/gatewaycommon/zuul/configuration/BaseZuulConfiguration.java b/sop-gateway-common/src/main/java/com/gitee/sop/gatewaycommon/zuul/configuration/BaseZuulConfiguration.java index 2f003d1b..0b8822b2 100644 --- a/sop-gateway-common/src/main/java/com/gitee/sop/gatewaycommon/zuul/configuration/BaseZuulConfiguration.java +++ b/sop-gateway-common/src/main/java/com/gitee/sop/gatewaycommon/zuul/configuration/BaseZuulConfiguration.java @@ -36,26 +36,31 @@ public class BaseZuulConfiguration { @Autowired protected RouteManager apiMetaManager; - @Bean - SopRouteLocator sopRouteLocator(ZuulRouteRepository zuulRouteRepository) { - return new SopRouteLocator(zuulRouteRepository); - } - - @Bean - ZuulZookeeperRouteManager zuulZookeeperRouteManager(Environment environment, ZuulRouteRepository zuulRouteRepository) { - return new ZuulZookeeperRouteManager(environment, zuulRouteRepository); - } - + /** + * 路由存储 + * @return + */ @Bean ZuulRouteRepository zuulRouteRepository() { return new ZuulRouteRepository(); } + /** + * 路由获取 + * @param zuulRouteRepository + * @return + */ @Bean - PreValidateFilter preValidateFilter() { - return new PreValidateFilter(); + SopRouteLocator sopRouteLocator(ZuulRouteRepository zuulRouteRepository) { + return new SopRouteLocator(zuulRouteRepository); } + /** + * 选取路由 + * @param zuulRouteRepository + * @param proxyRequestHelper + * @return + */ @Bean public PreDecorationFilter preDecorationFilter(ZuulRouteRepository zuulRouteRepository, ProxyRequestHelper proxyRequestHelper) { SopRouteLocator routeLocator = new SopRouteLocator(zuulRouteRepository); @@ -65,16 +70,48 @@ public class BaseZuulConfiguration { proxyRequestHelper); } + /** + * 路由管理 + * @param environment + * @param zuulRouteRepository + * @return + */ + @Bean + ZuulZookeeperRouteManager zuulZookeeperRouteManager(Environment environment, ZuulRouteRepository zuulRouteRepository) { + return new ZuulZookeeperRouteManager(environment, zuulRouteRepository); + } + + /** + * 前置校验 + * @return + */ + @Bean + PreValidateFilter preValidateFilter() { + return new PreValidateFilter(); + } + + /** + * 错误处理扩展 + * @return + */ @Bean ErrorFilter errorFilter() { return new ErrorFilter(); } + /** + * 结果返回 + * @return + */ @Bean PostResultFilter postResultFilter() { return new PostResultFilter(); } + /** + * 统一错误处理 + * @return + */ @Bean ZuulErrorController baseZuulController() { return ApiContext.getApiConfig().getZuulErrorController(); diff --git a/sop-gateway-common/src/main/java/com/gitee/sop/gatewaycommon/zuul/route/SopRouteLocator.java b/sop-gateway-common/src/main/java/com/gitee/sop/gatewaycommon/zuul/route/SopRouteLocator.java index 24ddaea4..3d7d7a29 100644 --- a/sop-gateway-common/src/main/java/com/gitee/sop/gatewaycommon/zuul/route/SopRouteLocator.java +++ b/sop-gateway-common/src/main/java/com/gitee/sop/gatewaycommon/zuul/route/SopRouteLocator.java @@ -1,6 +1,5 @@ package com.gitee.sop.gatewaycommon.zuul.route; -import com.gitee.sop.gatewaycommon.manager.RouteRepository; import com.gitee.sop.gatewaycommon.param.ApiParam; import com.gitee.sop.gatewaycommon.zuul.ZuulContext; import org.springframework.cloud.netflix.zuul.filters.Route; @@ -12,6 +11,7 @@ import java.util.Collections; import java.util.List; /** + * 路由定位 * @author tanghc */ public class SopRouteLocator implements RouteLocator, Ordered { @@ -32,6 +32,11 @@ public class SopRouteLocator implements RouteLocator, Ordered { return zuulRouteRepository.listAll(); } + /** + * 这里决定使用哪个路由 + * @param path + * @return + */ @Override public Route getMatchingRoute(String path) { ApiParam param = ZuulContext.getApiParam(); diff --git a/sop-gateway-common/src/main/java/com/gitee/sop/gatewaycommon/zuul/route/ZuulRouteRepository.java b/sop-gateway-common/src/main/java/com/gitee/sop/gatewaycommon/zuul/route/ZuulRouteRepository.java index 56735090..3777f686 100644 --- a/sop-gateway-common/src/main/java/com/gitee/sop/gatewaycommon/zuul/route/ZuulRouteRepository.java +++ b/sop-gateway-common/src/main/java/com/gitee/sop/gatewaycommon/zuul/route/ZuulRouteRepository.java @@ -11,6 +11,7 @@ import java.util.Map; import java.util.concurrent.ConcurrentHashMap; /** + * 本地存放路由内容的地方 * @author tanghc */ public class ZuulRouteRepository implements RouteRepository { diff --git a/sop-gateway-common/src/main/java/com/gitee/sop/gatewaycommon/zuul/route/ZuulZookeeperRouteManager.java b/sop-gateway-common/src/main/java/com/gitee/sop/gatewaycommon/zuul/route/ZuulZookeeperRouteManager.java index 39d64db0..1437c2ef 100644 --- a/sop-gateway-common/src/main/java/com/gitee/sop/gatewaycommon/zuul/route/ZuulZookeeperRouteManager.java +++ b/sop-gateway-common/src/main/java/com/gitee/sop/gatewaycommon/zuul/route/ZuulZookeeperRouteManager.java @@ -8,6 +8,7 @@ import org.springframework.cloud.netflix.zuul.filters.Route; import org.springframework.core.env.Environment; /** + * 路由内容管理,新增活修改路由 * @author tanghc */ @Slf4j