diff --git a/spring-cloud-alibaba-starters/spring-alibaba-nacos-config/src/main/java/com/alibaba/cloud/nacos/NacosConfigAutoConfiguration.java b/spring-cloud-alibaba-starters/spring-alibaba-nacos-config/src/main/java/com/alibaba/cloud/nacos/NacosConfigAutoConfiguration.java index ea31d2549f..ca23285550 100644 --- a/spring-cloud-alibaba-starters/spring-alibaba-nacos-config/src/main/java/com/alibaba/cloud/nacos/NacosConfigAutoConfiguration.java +++ b/spring-cloud-alibaba-starters/spring-alibaba-nacos-config/src/main/java/com/alibaba/cloud/nacos/NacosConfigAutoConfiguration.java @@ -21,17 +21,13 @@ import com.alibaba.cloud.nacos.refresh.NacosRefreshHistory; import org.springframework.beans.factory.BeanFactoryUtils; -import org.springframework.boot.autoconfigure.condition.ConditionalOnBean; import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; -import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; import org.springframework.boot.autoconfigure.condition.SearchStrategy; import org.springframework.context.ApplicationContext; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Conditional; import org.springframework.context.annotation.Configuration; -import static com.alibaba.cloud.nacos.constants.Constants.SPRING_CONFIG_IMPORT_PROPERTIES; - /** * @author juven.xuxb * @author freeman @@ -40,8 +36,6 @@ @Conditional(NacosConfigEnabledCondition.class) public class NacosConfigAutoConfiguration { - - @Bean @ConditionalOnMissingBean(value = NacosConfigProperties.class, search = SearchStrategy.CURRENT) public NacosConfigProperties nacosConfigProperties(ApplicationContext context) { @@ -63,19 +57,16 @@ public NacosRefreshHistory nacosRefreshHistory() { } @Bean - @ConditionalOnProperty(name = SPRING_CONFIG_IMPORT_PROPERTIES) public NacosConfigManager nacosConfigManager(NacosConfigProperties nacosConfigProperties) { return NacosConfigManager.getInstance(nacosConfigProperties); } @Bean - @ConditionalOnBean(NacosConfigManager.class) public static NacosAnnotationProcessor nacosAnnotationProcessor() { return new NacosAnnotationProcessor(); } @Bean - @ConditionalOnBean(NacosConfigManager.class) public NacosContextRefresher nacosContextRefresher(NacosConfigManager nacosConfigManager, NacosRefreshHistory nacosRefreshHistory) { // Consider that it is not necessary to be compatible with the previous diff --git a/spring-cloud-alibaba-starters/spring-alibaba-nacos-config/src/main/java/com/alibaba/cloud/nacos/NacosConfigBootstrapConfiguration.java b/spring-cloud-alibaba-starters/spring-alibaba-nacos-config/src/main/java/com/alibaba/cloud/nacos/NacosConfigBootstrapConfiguration.java index 340b1a230a..abeb35ffb8 100644 --- a/spring-cloud-alibaba-starters/spring-alibaba-nacos-config/src/main/java/com/alibaba/cloud/nacos/NacosConfigBootstrapConfiguration.java +++ b/spring-cloud-alibaba-starters/spring-alibaba-nacos-config/src/main/java/com/alibaba/cloud/nacos/NacosConfigBootstrapConfiguration.java @@ -17,13 +17,10 @@ package com.alibaba.cloud.nacos; import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; -import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Conditional; import org.springframework.context.annotation.Configuration; -import static com.alibaba.cloud.nacos.constants.Constants.SPRING_CONFIG_IMPORT_PROPERTIES; - /** * @author xiaojing * @author freeman @@ -40,7 +37,6 @@ public NacosConfigProperties nacosConfigProperties() { @Bean @ConditionalOnMissingBean - @ConditionalOnProperty(name = SPRING_CONFIG_IMPORT_PROPERTIES) public NacosConfigManager nacosConfigManager( NacosConfigProperties nacosConfigProperties) { return new NacosConfigManager(nacosConfigProperties); diff --git a/spring-cloud-alibaba-starters/spring-alibaba-nacos-config/src/main/java/com/alibaba/cloud/nacos/configdata/NacosConfigDataLoader.java b/spring-cloud-alibaba-starters/spring-alibaba-nacos-config/src/main/java/com/alibaba/cloud/nacos/configdata/NacosConfigDataLoader.java index c2ff71426f..3665355ea6 100644 --- a/spring-cloud-alibaba-starters/spring-alibaba-nacos-config/src/main/java/com/alibaba/cloud/nacos/configdata/NacosConfigDataLoader.java +++ b/spring-cloud-alibaba-starters/spring-alibaba-nacos-config/src/main/java/com/alibaba/cloud/nacos/configdata/NacosConfigDataLoader.java @@ -71,17 +71,7 @@ public ConfigData load(ConfigDataLoaderContext context, public ConfigData doLoad(ConfigDataLoaderContext context, NacosConfigDataResource resource) { try { - NacosConfigManager nacosConfigManager; - try { - nacosConfigManager = getBean(context, NacosConfigManager.class); - } - catch (Exception ignore) { - if (log.isErrorEnabled()) { - log.error("Error getting properties from nacos cause nacosConfigManager is not registration on spring context"); - } - return null; - } - ConfigService configService = nacosConfigManager + ConfigService configService = getBean(context, NacosConfigManager.class) .getConfigService(); NacosConfigProperties properties = getBean(context, NacosConfigProperties.class); diff --git a/spring-cloud-alibaba-starters/spring-alibaba-nacos-config/src/main/java/com/alibaba/cloud/nacos/configdata/NacosConfigDataLocationResolver.java b/spring-cloud-alibaba-starters/spring-alibaba-nacos-config/src/main/java/com/alibaba/cloud/nacos/configdata/NacosConfigDataLocationResolver.java index ff8d1c6b5e..a8e7563e91 100644 --- a/spring-cloud-alibaba-starters/spring-alibaba-nacos-config/src/main/java/com/alibaba/cloud/nacos/configdata/NacosConfigDataLocationResolver.java +++ b/spring-cloud-alibaba-starters/spring-alibaba-nacos-config/src/main/java/com/alibaba/cloud/nacos/configdata/NacosConfigDataLocationResolver.java @@ -46,7 +46,6 @@ import org.springframework.core.Ordered; import static com.alibaba.cloud.nacos.configdata.NacosConfigDataResource.NacosItemConfig; -import static com.alibaba.cloud.nacos.constants.Constants.SPRING_CONFIG_IMPORT_PROPERTIES; /** * Implementation of {@link ConfigDataLocationResolver}, load Nacos @@ -118,7 +117,7 @@ protected Log getLog() { @Override public boolean isResolvable(ConfigDataLocationResolverContext context, - ConfigDataLocation location) { + ConfigDataLocation location) { if (!location.hasPrefix(getPrefix())) { return false; } @@ -154,7 +153,7 @@ public List resolveProfileSpecific( bootstrapContext.registerIfAbsent(NacosConfigProperties.class, BootstrapRegistry.InstanceSupplier.of(properties)); - registerConfigManager(properties, bootstrapContext, resolverContext); + registerConfigManager(properties, bootstrapContext); return loadConfigDataResources(location, profiles, properties); } @@ -197,11 +196,8 @@ private URI getUri(ConfigDataLocation location, NacosConfigProperties properties } private void registerConfigManager(NacosConfigProperties properties, - ConfigurableBootstrapContext bootstrapContext, - ConfigDataLocationResolverContext resolverContext) { - List springConfigImportProperties = resolverContext.getBinder() - .bind(SPRING_CONFIG_IMPORT_PROPERTIES, List.class).get(); - if (!springConfigImportProperties.isEmpty() && !bootstrapContext.isRegistered(NacosConfigManager.class)) { + ConfigurableBootstrapContext bootstrapContext) { + if (!bootstrapContext.isRegistered(NacosConfigManager.class)) { bootstrapContext.register(NacosConfigManager.class, BootstrapRegistry.InstanceSupplier.of(NacosConfigManager.getInstance(properties))); } diff --git a/spring-cloud-alibaba-starters/spring-alibaba-nacos-config/src/main/java/com/alibaba/cloud/nacos/constants/Constants.java b/spring-cloud-alibaba-starters/spring-alibaba-nacos-config/src/main/java/com/alibaba/cloud/nacos/constants/Constants.java deleted file mode 100644 index 4b1c7bc680..0000000000 --- a/spring-cloud-alibaba-starters/spring-alibaba-nacos-config/src/main/java/com/alibaba/cloud/nacos/constants/Constants.java +++ /dev/null @@ -1,33 +0,0 @@ -/* - * Copyright 2013-present the original author or authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - - -package com.alibaba.cloud.nacos.constants; - - -/** - * @author chiangzeon - */ -public final class Constants { - - private Constants() { - } - - /** - * property:spring.config.import. - */ - public static final String SPRING_CONFIG_IMPORT_PROPERTIES = "spring.config.import"; -} diff --git a/spring-cloud-alibaba-starters/spring-alibaba-nacos-config/src/main/java/com/alibaba/cloud/nacos/proxy/druid/NacosDruidFilterConfiguration.java b/spring-cloud-alibaba-starters/spring-alibaba-nacos-config/src/main/java/com/alibaba/cloud/nacos/proxy/druid/NacosDruidFilterConfiguration.java index c84871befa..2421348776 100644 --- a/spring-cloud-alibaba-starters/spring-alibaba-nacos-config/src/main/java/com/alibaba/cloud/nacos/proxy/druid/NacosDruidFilterConfiguration.java +++ b/spring-cloud-alibaba-starters/spring-alibaba-nacos-config/src/main/java/com/alibaba/cloud/nacos/proxy/druid/NacosDruidFilterConfiguration.java @@ -16,9 +16,6 @@ package com.alibaba.cloud.nacos.proxy.druid; -import com.alibaba.cloud.nacos.NacosConfigManager; - -import org.springframework.boot.autoconfigure.condition.ConditionalOnBean; import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; @@ -29,7 +26,6 @@ public class NacosDruidFilterConfiguration { @Bean @ConditionalOnProperty(value = "spring.nacos.config.proxy.druid.enabled", havingValue = "true") - @ConditionalOnBean(NacosConfigManager.class) public NacosDruidConfigFilter nacosDruidFilter(Environment environment) { String proxyDataId = environment.getProperty("spring.nacos.config.proxy.druid.data-id"); return new NacosDruidConfigFilter(proxyDataId); diff --git a/spring-cloud-alibaba-starters/spring-alibaba-nacos-config/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports b/spring-cloud-alibaba-starters/spring-alibaba-nacos-config/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports index 3d8f72a5a4..09a4459ad0 100644 --- a/spring-cloud-alibaba-starters/spring-alibaba-nacos-config/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports +++ b/spring-cloud-alibaba-starters/spring-alibaba-nacos-config/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports @@ -1,2 +1,3 @@ com.alibaba.cloud.nacos.NacosConfigAutoConfiguration +com.alibaba.cloud.nacos.NacosConfigBootstrapConfiguration com.alibaba.cloud.nacos.endpoint.NacosConfigEndpointAutoConfiguration diff --git a/spring-cloud-alibaba-starters/spring-alibaba-nacos-config/src/test/java/com.alibaba.cloud.nacos/configdata/NacosConfigDataLocationResolverTest.java b/spring-cloud-alibaba-starters/spring-alibaba-nacos-config/src/test/java/com.alibaba.cloud.nacos/configdata/NacosConfigDataLocationResolverTest.java index 8d5cd03301..0fe1c861ac 100644 --- a/spring-cloud-alibaba-starters/spring-alibaba-nacos-config/src/test/java/com.alibaba.cloud.nacos/configdata/NacosConfigDataLocationResolverTest.java +++ b/spring-cloud-alibaba-starters/spring-alibaba-nacos-config/src/test/java/com.alibaba.cloud.nacos/configdata/NacosConfigDataLocationResolverTest.java @@ -61,7 +61,6 @@ public class NacosConfigDataLocationResolverTest { @BeforeEach void setup() { this.environment = new MockEnvironment(); - environment.setProperty("spring.config.import", "nacos:test.properties"); this.environmentBinder = Binder.get(this.environment); this.resolver = new NacosConfigDataLocationResolver(new DeferredLogs()); Mockito.when(bootstrapContext.isRegistered(ArgumentMatchers.eq(ConfigService.class))).thenReturn(true); @@ -73,14 +72,14 @@ void setup() { void testIsResolvable_givenIncorrectPrefix_thenReturnFalse() { assertThat( this.resolver.isResolvable(this.context, ConfigDataLocation.of("test:"))) - .isFalse(); + .isFalse(); } @Test void testIsResolvable_givenCorrectPrefix_thenReturnTure() { assertThat( this.resolver.isResolvable(this.context, ConfigDataLocation.of("nacos:"))) - .isTrue(); + .isTrue(); assertThat(this.resolver.isResolvable(this.context, ConfigDataLocation.of("optional:nacos:"))).isTrue(); } @@ -93,7 +92,7 @@ void testIsResolvable_givenDisable_thenReturnFalse() { this.environment.setProperty(prefix + ".config.enabled", "false"); assertThat( this.resolver.isResolvable(this.context, ConfigDataLocation.of("nacos:"))) - .isFalse(); + .isFalse(); } @Test diff --git a/spring-cloud-alibaba-starters/spring-alibaba-nacos-config/src/test/java/com.alibaba.cloud.nacos/configdata/NacosConfigManagerTests.java b/spring-cloud-alibaba-starters/spring-alibaba-nacos-config/src/test/java/com.alibaba.cloud.nacos/configdata/NacosConfigManagerTests.java deleted file mode 100644 index fea59916de..0000000000 --- a/spring-cloud-alibaba-starters/spring-alibaba-nacos-config/src/test/java/com.alibaba.cloud.nacos/configdata/NacosConfigManagerTests.java +++ /dev/null @@ -1,66 +0,0 @@ -/* - * Copyright 2013-present the original author or authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.alibaba.cloud.nacos.configdata; - - -import com.alibaba.cloud.nacos.NacosConfigBootstrapConfiguration; -import com.alibaba.cloud.nacos.NacosConfigManager; -import org.junit.jupiter.api.Test; - -import org.springframework.beans.factory.NoSuchBeanDefinitionException; -import org.springframework.boot.WebApplicationType; -import org.springframework.boot.autoconfigure.EnableAutoConfiguration; -import org.springframework.boot.autoconfigure.ImportAutoConfiguration; -import org.springframework.boot.builder.SpringApplicationBuilder; -import org.springframework.context.ConfigurableApplicationContext; - -import static org.assertj.core.api.Assertions.assertThat; -import static org.assertj.core.api.Assertions.assertThatThrownBy; - -public class NacosConfigManagerTests { - - ConfigurableApplicationContext context; - - @Test - public void testNacosConfigManagerIsNotExists() { - context = new SpringApplicationBuilder(Configuration.class) - .web(WebApplicationType.NONE) - .properties("spring.cloud.nacos.server-addr=123.123.123.123:8848") - .properties("spring.cloud.nacos.config.import-check.enabled=false").run(); - assertThatThrownBy(() -> context.getBean(NacosConfigManager.class)).isInstanceOf(NoSuchBeanDefinitionException.class) - .hasMessage("No qualifying bean of type 'com.alibaba.cloud.nacos.NacosConfigManager' available"); - } - - - @Test - public void testNacosConfigManagerIsExists() { - context = new SpringApplicationBuilder(Configuration.class) - .web(WebApplicationType.NONE) - .properties("spring.cloud.nacos.server-addr=123.123.123.123:8848") - .properties("spring.cloud.nacos.config.import-check.enabled=false") - .properties("spring.config.import=nacos:test.properties").run(); - context.getBean(NacosConfigManager.class); - assertThat(context.getBean(NacosConfigManager.class)).isInstanceOf(NacosConfigManager.class); - } - - @org.springframework.context.annotation.Configuration - @ImportAutoConfiguration({NacosConfigBootstrapConfiguration.class}) - @EnableAutoConfiguration - public static class Configuration { - - } -} diff --git a/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-nacos-config/src/main/java/com/alibaba/cloud/nacos/NacosConfigSpringCloudAutoConfiguration.java b/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-nacos-config/src/main/java/com/alibaba/cloud/nacos/NacosConfigSpringCloudAutoConfiguration.java index 80f691cb16..97ff1f955a 100644 --- a/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-nacos-config/src/main/java/com/alibaba/cloud/nacos/NacosConfigSpringCloudAutoConfiguration.java +++ b/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-nacos-config/src/main/java/com/alibaba/cloud/nacos/NacosConfigSpringCloudAutoConfiguration.java @@ -21,7 +21,6 @@ import com.alibaba.cloud.nacos.refresh.SmartConfigurationPropertiesRebinder; import com.alibaba.cloud.nacos.refresh.condition.ConditionalOnNonDefaultBehavior; -import org.springframework.boot.autoconfigure.condition.ConditionalOnBean; import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; import org.springframework.boot.autoconfigure.condition.SearchStrategy; import org.springframework.cloud.context.properties.ConfigurationPropertiesBeans; @@ -48,7 +47,6 @@ public ConfigurationPropertiesRebinder smartConfigurationPropertiesRebinder(Conf } @Bean - @ConditionalOnBean(NacosConfigManager.class) public NacosPropertySourceLocator nacosPropertySourceLocator( NacosConfigManager nacosConfigManager) { return new NacosPropertySourceLocator(nacosConfigManager); diff --git a/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-nacos-config/src/test/java/com/alibaba/cloud/nacos/SmartConfigurationPropertiesRebinderIntegrationTest.java b/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-nacos-config/src/test/java/com/alibaba/cloud/nacos/SmartConfigurationPropertiesRebinderIntegrationTest.java index 00fd234c0d..755edfca19 100644 --- a/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-nacos-config/src/test/java/com/alibaba/cloud/nacos/SmartConfigurationPropertiesRebinderIntegrationTest.java +++ b/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-nacos-config/src/test/java/com/alibaba/cloud/nacos/SmartConfigurationPropertiesRebinderIntegrationTest.java @@ -46,8 +46,7 @@ public void testUsingSmartConfigurationPropertiesRebinder_whenBehaviorIsNotDefau .web(WebApplicationType.NONE) .properties("spring.cloud.nacos.config.refresh-behavior=specific_bean") .properties("spring.cloud.nacos.server-addr=123.123.123.123:8848") - .properties("spring.cloud.nacos.config.import-check.enabled=false") - .properties("spring.config.import=nacos:test.properties").run(); + .properties("spring.cloud.nacos.config.import-check.enabled=false").run(); ConfigurationPropertiesRebinder rebinder = context .getBean(ConfigurationPropertiesRebinder.class); @@ -65,8 +64,7 @@ public void testUsingConfigurationPropertiesRebinder_whenBehaviorIsDefault() { context = new SpringApplicationBuilder(RebinderConfiguration.class) .web(WebApplicationType.NONE) .properties("spring.cloud.nacos.server-addr=123.123.123.123:8848") - .properties("spring.cloud.nacos.config.import-check.enabled=false") - .properties("spring.config.import=nacos:test.properties").run(); + .properties("spring.cloud.nacos.config.import-check.enabled=false").run(); ConfigurationPropertiesRebinder rebinder = context .getBean(ConfigurationPropertiesRebinder.class);