diff --git a/spring-cloud-alibaba-examples/nacos-example/nacos-discovery-example/nacos-discovery-with-spring-cloud-config-example/pom.xml b/spring-cloud-alibaba-examples/nacos-example/nacos-discovery-example/nacos-discovery-with-spring-cloud-config-example/pom.xml
new file mode 100644
index 00000000..845aebc7
--- /dev/null
+++ b/spring-cloud-alibaba-examples/nacos-example/nacos-discovery-example/nacos-discovery-with-spring-cloud-config-example/pom.xml
@@ -0,0 +1,63 @@
+
+
+
+
+ org.springframework.cloud
+ nacos-discovery-example
+ 0.1.3.BUILD-SNAPSHOT
+
+ 4.0.0
+
+
+ nacos-discovery-with-spring-cloud-config-example
+ jar
+ Example demonstrating how to use nacos discovery
+
+
+
+
+ org.springframework.boot
+ spring-boot-starter-web
+
+
+ org.springframework.cloud
+ spring-cloud-starter-alibaba-nacos-discovery
+
+
+
+ org.springframework.cloud
+ spring-cloud-starter-config
+
+
+
+ org.springframework.boot
+ spring-boot-starter-actuator
+
+
+
+ org.springframework.cloud
+ spring-cloud-starter-netflix-ribbon
+
+
+
+
+
+
+
+ org.springframework.boot
+ spring-boot-maven-plugin
+
+
+ org.apache.maven.plugins
+ maven-deploy-plugin
+ ${maven-deploy-plugin.version}
+
+ true
+
+
+
+
+
+
+
diff --git a/spring-cloud-alibaba-examples/nacos-example/nacos-discovery-example/nacos-discovery-with-spring-cloud-config-example/src/main/java/org/springframework/cloud/alibaba/cloud/examples/GetConfigController.java b/spring-cloud-alibaba-examples/nacos-example/nacos-discovery-example/nacos-discovery-with-spring-cloud-config-example/src/main/java/org/springframework/cloud/alibaba/cloud/examples/GetConfigController.java
new file mode 100644
index 00000000..725b24dd
--- /dev/null
+++ b/spring-cloud-alibaba-examples/nacos-example/nacos-discovery-example/nacos-discovery-with-spring-cloud-config-example/src/main/java/org/springframework/cloud/alibaba/cloud/examples/GetConfigController.java
@@ -0,0 +1,19 @@
+package org.springframework.cloud.alibaba.cloud.examples;
+
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+import org.springframework.web.bind.annotation.RestController;
+
+@RestController
+public class GetConfigController {
+
+ @Value("${config}")
+ private String config;
+
+ @RequestMapping(value = "/config", method = RequestMethod.GET)
+ public String getConfig() {
+ return config;
+ }
+
+}
diff --git a/spring-cloud-alibaba-examples/nacos-example/nacos-discovery-example/nacos-discovery-with-spring-cloud-config-example/src/main/java/org/springframework/cloud/alibaba/cloud/examples/NacosDiscoverySpringConfigApplication.java b/spring-cloud-alibaba-examples/nacos-example/nacos-discovery-example/nacos-discovery-with-spring-cloud-config-example/src/main/java/org/springframework/cloud/alibaba/cloud/examples/NacosDiscoverySpringConfigApplication.java
new file mode 100644
index 00000000..f81a4158
--- /dev/null
+++ b/spring-cloud-alibaba-examples/nacos-example/nacos-discovery-example/nacos-discovery-with-spring-cloud-config-example/src/main/java/org/springframework/cloud/alibaba/cloud/examples/NacosDiscoverySpringConfigApplication.java
@@ -0,0 +1,18 @@
+package org.springframework.cloud.alibaba.cloud.examples;
+
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
+
+/**
+ * @author JevonYang
+ */
+@SpringBootApplication
+@EnableDiscoveryClient
+public class NacosDiscoverySpringConfigApplication {
+
+ public static void main(String[] args) {
+ SpringApplication.run(NacosDiscoverySpringConfigApplication.class, args);
+ }
+
+}
diff --git a/spring-cloud-alibaba-examples/nacos-example/nacos-discovery-example/nacos-discovery-with-spring-cloud-config-example/src/main/resources/application.yml b/spring-cloud-alibaba-examples/nacos-example/nacos-discovery-example/nacos-discovery-with-spring-cloud-config-example/src/main/resources/application.yml
new file mode 100644
index 00000000..23cd46cd
--- /dev/null
+++ b/spring-cloud-alibaba-examples/nacos-example/nacos-discovery-example/nacos-discovery-with-spring-cloud-config-example/src/main/resources/application.yml
@@ -0,0 +1 @@
+config: config-from-yml
\ No newline at end of file
diff --git a/spring-cloud-alibaba-examples/nacos-example/nacos-discovery-example/nacos-discovery-with-spring-cloud-config-example/src/main/resources/bootstrap.yml b/spring-cloud-alibaba-examples/nacos-example/nacos-discovery-example/nacos-discovery-with-spring-cloud-config-example/src/main/resources/bootstrap.yml
new file mode 100644
index 00000000..9f991956
--- /dev/null
+++ b/spring-cloud-alibaba-examples/nacos-example/nacos-discovery-example/nacos-discovery-with-spring-cloud-config-example/src/main/resources/bootstrap.yml
@@ -0,0 +1,10 @@
+spring:
+ application:
+ name: client
+ cloud:
+ nacos:
+ discovery:
+ server-addr: localhost:8848
+ config:
+ discovery:
+ enabled: true
\ No newline at end of file
diff --git a/spring-cloud-alibaba-examples/nacos-example/nacos-discovery-example/pom.xml b/spring-cloud-alibaba-examples/nacos-example/nacos-discovery-example/pom.xml
index 5b0779de..e35816ae 100644
--- a/spring-cloud-alibaba-examples/nacos-example/nacos-discovery-example/pom.xml
+++ b/spring-cloud-alibaba-examples/nacos-example/nacos-discovery-example/pom.xml
@@ -19,6 +19,7 @@
nacos-discovery-consumer-example
nacos-discovery-provider-example
+ nacos-discovery-with-spring-cloud-config-example
diff --git a/spring-cloud-alibaba-nacos-discovery/pom.xml b/spring-cloud-alibaba-nacos-discovery/pom.xml
index 74eada8d..a6ecb237 100644
--- a/spring-cloud-alibaba-nacos-discovery/pom.xml
+++ b/spring-cloud-alibaba-nacos-discovery/pom.xml
@@ -34,6 +34,18 @@
spring-cloud-starter-netflix-ribbon
+
+ org.springframework.cloud
+ spring-cloud-config-client
+ true
+
+
+
+ org.springframework.cloud
+ spring-cloud-config-server
+ true
+
+
org.springframework.boot
spring-boot-actuator
diff --git a/spring-cloud-alibaba-nacos-discovery/src/main/java/org/springframework/cloud/alibaba/nacos/discovery/configclient/NacosConfigServerAutoConfiguration.java b/spring-cloud-alibaba-nacos-discovery/src/main/java/org/springframework/cloud/alibaba/nacos/discovery/configclient/NacosConfigServerAutoConfiguration.java
new file mode 100644
index 00000000..fd28f5e0
--- /dev/null
+++ b/spring-cloud-alibaba-nacos-discovery/src/main/java/org/springframework/cloud/alibaba/nacos/discovery/configclient/NacosConfigServerAutoConfiguration.java
@@ -0,0 +1,57 @@
+/*
+ * Copyright (C) 2018 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
+ *
+ * http://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 org.springframework.cloud.alibaba.nacos.discovery.configclient;
+
+import javax.annotation.PostConstruct;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
+import org.springframework.boot.context.properties.EnableConfigurationProperties;
+import org.springframework.cloud.alibaba.nacos.NacosDiscoveryProperties;
+import org.springframework.cloud.config.server.config.ConfigServerProperties;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.util.StringUtils;
+
+/**
+ * Extra configuration for config server if it happens to be registered with Nacos.
+ *
+ * @author JevonYang
+ */
+@Configuration
+@EnableConfigurationProperties
+@ConditionalOnClass({ NacosDiscoveryProperties.class, ConfigServerProperties.class })
+public class NacosConfigServerAutoConfiguration {
+
+ @Autowired(required = false)
+ private NacosDiscoveryProperties properties;
+
+ @Autowired(required = false)
+ private ConfigServerProperties server;
+
+ @PostConstruct
+ public void init() {
+ if (this.properties == null || this.server == null) {
+ return;
+ }
+ String prefix = this.server.getPrefix();
+ if (StringUtils.hasText(prefix) && !StringUtils
+ .hasText(this.properties.getMetadata().get("configPath"))) {
+ this.properties.getMetadata().put("configPath", prefix);
+ }
+ }
+
+}
diff --git a/spring-cloud-alibaba-nacos-discovery/src/main/java/org/springframework/cloud/alibaba/nacos/discovery/configclient/NacosDiscoveryClientConfigServiceBootstrapConfiguration.java b/spring-cloud-alibaba-nacos-discovery/src/main/java/org/springframework/cloud/alibaba/nacos/discovery/configclient/NacosDiscoveryClientConfigServiceBootstrapConfiguration.java
new file mode 100644
index 00000000..13dee285
--- /dev/null
+++ b/spring-cloud-alibaba-nacos-discovery/src/main/java/org/springframework/cloud/alibaba/nacos/discovery/configclient/NacosDiscoveryClientConfigServiceBootstrapConfiguration.java
@@ -0,0 +1,39 @@
+/*
+ * Copyright (C) 2018 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
+ *
+ * http://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 org.springframework.cloud.alibaba.nacos.discovery.configclient;
+
+import org.springframework.boot.autoconfigure.ImportAutoConfiguration;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
+import org.springframework.cloud.alibaba.nacos.NacosDiscoveryAutoConfiguration;
+import org.springframework.cloud.alibaba.nacos.discovery.NacosDiscoveryClientAutoConfiguration;
+import org.springframework.cloud.config.client.ConfigServicePropertySourceLocator;
+import org.springframework.context.annotation.Configuration;
+
+/**
+ * Helper for config client that wants to lookup the config server via discovery.
+ *
+ * @author JevonYang
+ */
+@ConditionalOnClass(ConfigServicePropertySourceLocator.class)
+@ConditionalOnProperty(value = "spring.cloud.config.discovery.enabled", matchIfMissing = false)
+@Configuration
+@ImportAutoConfiguration({ NacosDiscoveryClientAutoConfiguration.class,
+ NacosDiscoveryAutoConfiguration.class })
+public class NacosDiscoveryClientConfigServiceBootstrapConfiguration {
+
+}
diff --git a/spring-cloud-alibaba-nacos-discovery/src/main/resources/META-INF/spring.factories b/spring-cloud-alibaba-nacos-discovery/src/main/resources/META-INF/spring.factories
index 2fe11df1..b0b91897 100644
--- a/spring-cloud-alibaba-nacos-discovery/src/main/resources/META-INF/spring.factories
+++ b/spring-cloud-alibaba-nacos-discovery/src/main/resources/META-INF/spring.factories
@@ -2,4 +2,7 @@ org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
org.springframework.cloud.alibaba.nacos.NacosDiscoveryAutoConfiguration,\
org.springframework.cloud.alibaba.nacos.ribbon.RibbonNacosAutoConfiguration,\
org.springframework.cloud.alibaba.nacos.endpoint.NacosDiscoveryEndpointAutoConfiguration,\
- org.springframework.cloud.alibaba.nacos.discovery.NacosDiscoveryClientAutoConfiguration
+ org.springframework.cloud.alibaba.nacos.discovery.NacosDiscoveryClientAutoConfiguration,\
+ org.springframework.cloud.alibaba.nacos.discovery.configclient.NacosConfigServerAutoConfiguration
+org.springframework.cloud.bootstrap.BootstrapConfiguration=\
+ org.springframework.cloud.alibaba.nacos.discovery.configclient.NacosDiscoveryClientConfigServiceBootstrapConfiguration