From 3197cac20ff0e52dc743fe58237084d6bb4e4442 Mon Sep 17 00:00:00 2001 From: lbw Date: Mon, 25 Jan 2021 15:28:51 +0800 Subject: [PATCH] =?UTF-8?q?:sparkles:=20Introducing=20new=20features.=20#2?= =?UTF-8?q?303=20=E5=85=BC=E5=AE=B9=E5=B9=B6=E6=94=AF=E6=8C=81SCL=20?= =?UTF-8?q?=E7=81=B0=E5=BA=A6=E8=B7=AF=E7=94=B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../GrayLoadBalancerAutoConfiguration.java | 7 ++-- ...dBalancerClientConfigurationRegistrar.java | 39 ------------------- 2 files changed, 4 insertions(+), 42 deletions(-) delete mode 100755 pigx-common/pigx-common-gray/src/main/java/com/pig4cloud/pigx/common/gray/rule/GrayLoadBalancerClientConfigurationRegistrar.java diff --git a/pigx-common/pigx-common-gray/src/main/java/com/pig4cloud/pigx/common/gray/GrayLoadBalancerAutoConfiguration.java b/pigx-common/pigx-common-gray/src/main/java/com/pig4cloud/pigx/common/gray/GrayLoadBalancerAutoConfiguration.java index 6a9b9969b..d52b5b2ae 100644 --- a/pigx-common/pigx-common-gray/src/main/java/com/pig4cloud/pigx/common/gray/GrayLoadBalancerAutoConfiguration.java +++ b/pigx-common/pigx-common-gray/src/main/java/com/pig4cloud/pigx/common/gray/GrayLoadBalancerAutoConfiguration.java @@ -18,12 +18,13 @@ package com.pig4cloud.pigx.common.gray; import com.pig4cloud.pigx.common.gray.feign.GrayFeignRequestInterceptor; -import com.pig4cloud.pigx.common.gray.rule.GrayLoadBalancerClientConfigurationRegistrar; +import com.pig4cloud.pigx.common.gray.rule.GrayLoadBalancerClientConfiguration; import feign.RequestInterceptor; + import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; +import org.springframework.cloud.loadbalancer.annotation.LoadBalancerClients; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; -import org.springframework.context.annotation.Import; /** * @author lengleng @@ -31,7 +32,7 @@ import org.springframework.context.annotation.Import; */ @Configuration @ConditionalOnProperty(value = "gray.rule.enabled", havingValue = "true") -@Import(GrayLoadBalancerClientConfigurationRegistrar.class) +@LoadBalancerClients(defaultConfiguration = GrayLoadBalancerClientConfiguration.class) public class GrayLoadBalancerAutoConfiguration { @Bean diff --git a/pigx-common/pigx-common-gray/src/main/java/com/pig4cloud/pigx/common/gray/rule/GrayLoadBalancerClientConfigurationRegistrar.java b/pigx-common/pigx-common-gray/src/main/java/com/pig4cloud/pigx/common/gray/rule/GrayLoadBalancerClientConfigurationRegistrar.java deleted file mode 100755 index 0fe2f94f3..000000000 --- a/pigx-common/pigx-common-gray/src/main/java/com/pig4cloud/pigx/common/gray/rule/GrayLoadBalancerClientConfigurationRegistrar.java +++ /dev/null @@ -1,39 +0,0 @@ -package com.pig4cloud.pigx.common.gray.rule; - -import cn.hutool.core.util.ReflectUtil; -import com.pig4cloud.pigx.common.core.constant.ServiceNameConstants; -import org.springframework.beans.factory.support.BeanDefinitionBuilder; -import org.springframework.beans.factory.support.BeanDefinitionRegistry; -import org.springframework.cloud.loadbalancer.annotation.LoadBalancerClientSpecification; -import org.springframework.context.annotation.ImportBeanDefinitionRegistrar; -import org.springframework.core.type.AnnotationMetadata; - -import java.lang.reflect.Field; - -/** - * @author lengleng - * @date 2020/11/20 - */ -public class GrayLoadBalancerClientConfigurationRegistrar implements ImportBeanDefinitionRegistrar { - - private static void registerClientConfiguration(BeanDefinitionRegistry registry, Object name, - Object configuration) { - BeanDefinitionBuilder builder = BeanDefinitionBuilder - .genericBeanDefinition(LoadBalancerClientSpecification.class); - builder.addConstructorArgValue(name); - builder.addConstructorArgValue(configuration); - registry.registerBeanDefinition(name + ".LoadBalancerClientSpecification", builder.getBeanDefinition()); - } - - @Override - public void registerBeanDefinitions(AnnotationMetadata metadata, BeanDefinitionRegistry registry) { - Field[] fields = ReflectUtil.getFields(ServiceNameConstants.class); - - // 遍历服务名称,注入支持灰度策略的负载均衡器 - for (Field field : fields) { - Object fieldValue = ReflectUtil.getFieldValue(ServiceNameConstants.class, field); - registerClientConfiguration(registry, fieldValue, GrayLoadBalancerClientConfiguration.class); - } - } - -}