From 25f2b04c6b88212737ba7c063dd36f7b71b645b3 Mon Sep 17 00:00:00 2001 From: fangjian0423 Date: Mon, 27 May 2019 11:31:29 +0800 Subject: [PATCH] add @ConditionalOnMissingBean for sentinel gateway AutoConfiguration --- .../gateway/scg/SentinelSCGAutoConfiguration.java | 3 +++ .../gateway/zuul/SentinelZuulAutoConfiguration.java | 11 +++++++---- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/spring-cloud-alibaba-sentinel-gateway/src/main/java/org/springframework/cloud/alibaba/sentinel/gateway/scg/SentinelSCGAutoConfiguration.java b/spring-cloud-alibaba-sentinel-gateway/src/main/java/org/springframework/cloud/alibaba/sentinel/gateway/scg/SentinelSCGAutoConfiguration.java index 076b0b18..373149db 100644 --- a/spring-cloud-alibaba-sentinel-gateway/src/main/java/org/springframework/cloud/alibaba/sentinel/gateway/scg/SentinelSCGAutoConfiguration.java +++ b/spring-cloud-alibaba-sentinel-gateway/src/main/java/org/springframework/cloud/alibaba/sentinel/gateway/scg/SentinelSCGAutoConfiguration.java @@ -29,6 +29,7 @@ import org.slf4j.LoggerFactory; import org.springframework.beans.factory.ObjectProvider; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.autoconfigure.condition.ConditionalOnClass; +import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; import org.springframework.boot.context.properties.EnableConfigurationProperties; import org.springframework.cloud.alibaba.sentinel.gateway.ConfigConstants; @@ -134,6 +135,7 @@ public class SentinelSCGAutoConfiguration { @Bean @Order(Ordered.HIGHEST_PRECEDENCE) + @ConditionalOnMissingBean public SentinelGatewayBlockExceptionHandler sentinelGatewayBlockExceptionHandler() { // Register the block exception handler for Spring Cloud Gateway. logger.info( @@ -144,6 +146,7 @@ public class SentinelSCGAutoConfiguration { @Bean @Order(-1) + @ConditionalOnMissingBean public GlobalFilter sentinelGatewayFilter() { logger.info("[Sentinel SpringCloudGateway] register SentinelGatewayFilter"); return new SentinelGatewayFilter(); diff --git a/spring-cloud-alibaba-sentinel-gateway/src/main/java/org/springframework/cloud/alibaba/sentinel/gateway/zuul/SentinelZuulAutoConfiguration.java b/spring-cloud-alibaba-sentinel-gateway/src/main/java/org/springframework/cloud/alibaba/sentinel/gateway/zuul/SentinelZuulAutoConfiguration.java index 7ed86588..0867df6a 100644 --- a/spring-cloud-alibaba-sentinel-gateway/src/main/java/org/springframework/cloud/alibaba/sentinel/gateway/zuul/SentinelZuulAutoConfiguration.java +++ b/spring-cloud-alibaba-sentinel-gateway/src/main/java/org/springframework/cloud/alibaba/sentinel/gateway/zuul/SentinelZuulAutoConfiguration.java @@ -25,6 +25,7 @@ import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.support.DefaultListableBeanFactory; import org.springframework.boot.autoconfigure.condition.ConditionalOnClass; +import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; import org.springframework.boot.context.properties.EnableConfigurationProperties; import org.springframework.cloud.alibaba.sentinel.gateway.ConfigConstants; @@ -38,7 +39,6 @@ import com.alibaba.csp.sentinel.adapter.gateway.zuul.filters.SentinelZuulPostFil import com.alibaba.csp.sentinel.adapter.gateway.zuul.filters.SentinelZuulPreFilter; import com.alibaba.csp.sentinel.config.SentinelConfig; -import com.netflix.zuul.ZuulFilter; import com.netflix.zuul.http.ZuulServlet; /** @@ -70,21 +70,24 @@ public class SentinelZuulAutoConfiguration { } @Bean - public ZuulFilter sentinelZuulPreFilter() { + @ConditionalOnMissingBean + public SentinelZuulPreFilter sentinelZuulPreFilter() { logger.info("[Sentinel Zuul] register SentinelZuulPreFilter {}", zuulProperties.getOrder().getPre()); return new SentinelZuulPreFilter(zuulProperties.getOrder().getPre()); } @Bean - public ZuulFilter sentinelZuulPostFilter() { + @ConditionalOnMissingBean + public SentinelZuulPostFilter sentinelZuulPostFilter() { logger.info("[Sentinel Zuul] register SentinelZuulPostFilter {}", zuulProperties.getOrder().getPost()); return new SentinelZuulPostFilter(zuulProperties.getOrder().getPost()); } @Bean - public ZuulFilter sentinelZuulErrorFilter() { + @ConditionalOnMissingBean + public SentinelZuulErrorFilter sentinelZuulErrorFilter() { logger.info("[Sentinel Zuul] register SentinelZuulErrorFilter {}", zuulProperties.getOrder().getError()); return new SentinelZuulErrorFilter(zuulProperties.getOrder().getError());