diff --git a/CHANGELOG.md b/CHANGELOG.md index dd7ea2a6c..f6da6cdb4 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -24,3 +24,4 @@ - [fix:fix router label feign interceptor order.](https://github.com/Tencent/spring-cloud-tencent/pull/1070) - [feat:added polaris weighted round robin load balancer.](https://github.com/Tencent/spring-cloud-tencent/pull/1072) - [fix:add deregister judgment.](https://github.com/Tencent/spring-cloud-tencent/pull/1076) +- [refactor:optimize discovery properties initialization.](https://github.com/Tencent/spring-cloud-tencent/pull/1078) diff --git a/spring-cloud-starter-tencent-polaris-discovery/src/main/java/com/tencent/cloud/polaris/DiscoveryPropertiesAutoConfiguration.java b/spring-cloud-starter-tencent-polaris-discovery/src/main/java/com/tencent/cloud/polaris/DiscoveryPropertiesAutoConfiguration.java index 8d4a751b6..43ca4b99a 100644 --- a/spring-cloud-starter-tencent-polaris-discovery/src/main/java/com/tencent/cloud/polaris/DiscoveryPropertiesAutoConfiguration.java +++ b/spring-cloud-starter-tencent-polaris-discovery/src/main/java/com/tencent/cloud/polaris/DiscoveryPropertiesAutoConfiguration.java @@ -29,7 +29,6 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; -import org.springframework.context.annotation.Import; /** * Common configuration of discovery. @@ -38,9 +37,26 @@ import org.springframework.context.annotation.Import; */ @Configuration(proxyBeanMethods = false) @ConditionalOnPolarisEnabled -@Import({PolarisDiscoveryProperties.class, ConsulContextProperties.class, NacosContextProperties.class}) public class DiscoveryPropertiesAutoConfiguration { + @Bean + @ConditionalOnMissingBean + public PolarisDiscoveryProperties polarisDiscoveryProperties() { + return new PolarisDiscoveryProperties(); + } + + @Bean + @ConditionalOnMissingBean + public ConsulContextProperties consulContextProperties() { + return new ConsulContextProperties(); + } + + @Bean + @ConditionalOnMissingBean + public NacosContextProperties nacosContextProperties() { + return new NacosContextProperties(); + } + @Bean @ConditionalOnMissingBean public PolarisDiscoveryHandler polarisDiscoveryHandler(PolarisDiscoveryProperties polarisDiscoveryProperties, diff --git a/spring-cloud-starter-tencent-polaris-discovery/src/test/java/com/tencent/cloud/polaris/DiscoveryPropertiesAutoConfigurationTest.java b/spring-cloud-starter-tencent-polaris-discovery/src/test/java/com/tencent/cloud/polaris/DiscoveryPropertiesAutoConfigurationTest.java index 17e330c43..37a01df72 100644 --- a/spring-cloud-starter-tencent-polaris-discovery/src/test/java/com/tencent/cloud/polaris/DiscoveryPropertiesAutoConfigurationTest.java +++ b/spring-cloud-starter-tencent-polaris-discovery/src/test/java/com/tencent/cloud/polaris/DiscoveryPropertiesAutoConfigurationTest.java @@ -24,8 +24,6 @@ import org.junit.jupiter.api.Test; import org.springframework.boot.autoconfigure.AutoConfigurations; import org.springframework.boot.test.context.runner.ApplicationContextRunner; -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; import static org.assertj.core.api.Assertions.assertThat; @@ -39,7 +37,8 @@ public class DiscoveryPropertiesAutoConfigurationTest { @Test public void testDefaultInitialization() { ApplicationContextRunner applicationContextRunner = new ApplicationContextRunner().withConfiguration( - AutoConfigurations.of(PolarisContextAutoConfiguration.class, + AutoConfigurations.of( + PolarisContextAutoConfiguration.class, DiscoveryPropertiesAutoConfiguration.class)); applicationContextRunner.run(context -> { assertThat(context).hasSingleBean(DiscoveryPropertiesAutoConfiguration.class); @@ -49,35 +48,4 @@ public class DiscoveryPropertiesAutoConfigurationTest { assertThat(context).hasSingleBean(DiscoveryConfigModifier.class); }); } - - @Test - public void testInit() { - ApplicationContextRunner applicationContextRunner = new ApplicationContextRunner().withConfiguration( - AutoConfigurations.of(PolarisContextAutoConfiguration.class, - TestConfiguration.class, - DiscoveryPropertiesAutoConfiguration.class)) - .withPropertyValues("spring.cloud.polaris.discovery.register=false") - .withPropertyValues("spring.cloud.consul.discovery.register=false") - .withPropertyValues("spring.cloud.consul.discovery.enabled=false"); - applicationContextRunner.run(context -> { - assertThat(context).hasSingleBean(DiscoveryPropertiesAutoConfiguration.class); - }); - } - - @Configuration - static class TestConfiguration { - @Bean - public PolarisDiscoveryProperties polarisDiscoveryProperties() { - PolarisDiscoveryProperties polarisDiscoveryProperties = new PolarisDiscoveryProperties(); - polarisDiscoveryProperties.setEnabled(false); - return polarisDiscoveryProperties; - } - - @Bean - public ConsulContextProperties consulContextProperties() { - ConsulContextProperties consulContextProperties = new ConsulContextProperties(); - consulContextProperties.setEnabled(true); - return consulContextProperties; - } - } }