From 874515d77394bd946aff0fcc06d00c9aac9ede6c Mon Sep 17 00:00:00 2001 From: pbting <314226532@qq.com> Date: Tue, 27 Nov 2018 22:52:40 +0800 Subject: [PATCH 1/7] Update nacos-config.adoc --- .../src/main/asciidoc-zh/nacos-config.adoc | 61 ++++++++++++++----- 1 file changed, 47 insertions(+), 14 deletions(-) diff --git a/spring-cloud-alibaba-docs/src/main/asciidoc-zh/nacos-config.adoc b/spring-cloud-alibaba-docs/src/main/asciidoc-zh/nacos-config.adoc index 684f3f82..d703b91b 100644 --- a/spring-cloud-alibaba-docs/src/main/asciidoc-zh/nacos-config.adoc +++ b/spring-cloud-alibaba-docs/src/main/asciidoc-zh/nacos-config.adoc @@ -1,5 +1,9 @@ = Spring Cloud Alibaba Nacos Config +Nacos 提供用于存储配置和其他元数据的 key/value 存储,为分布式系统中的外部化配置提供服务器端和客户端支持。使用 Spring Cloud Alibaba Nacos Config,您可以在 Nacos Server 集中管理你 Spring Cloud 应用的外部属性配置。 + +Spring Cloud Alibaba Nacos Config 是 Config Server 和 Client 的替代方案,客户端和服务器上的概念与 Spring Environment 和 PropertySource 有着一致的抽象,在特殊的 bootstrap 阶段,配置被加载到 Spring 环境中。当应用程序通过部署管道从开发到测试再到生产时,您可以管理这些环境之间的配置,并确保应用程序具有迁移时需要运行的所有内容。 + == 快速开始 === 基于 dataid 为 properties 的文件扩展名配置方式 @@ -24,7 +28,7 @@ Group : DEFAULT_GROUP ==== 客户端使用方式 -为了能够在应用程序中使用Nacos作为Sping Cloud Config的后端存储服务,在您构建Spring Boot 应用的同时添加一个Spring Boot Starter org.springframework.cloud:spring-cloud-starter-alibaba-nacos-config。以下是一个基础的maven 依赖配置: +为了能够在应用程序使用Nacos实现应用的外部化配置,在构建应用的同时添加一个Spring Boot Starter org.springframework.cloud:spring-cloud-starter-alibaba-nacos-config。以下是一个基础的maven 依赖配置: [source,xml] ---- @@ -75,7 +79,7 @@ Group : DEFAULT_GROUP ---- -现在就可以创建一个标准的Spring Boot的应用。 +现在就可以创建一个标准的 Spring Boot 应用。 [source,java] ---- @@ -96,7 +100,7 @@ spring-cloud-starter-alibaba-nacos-config 对于 Nacos 服务端的基础配置 .bootstrap.properties [source,properties] ---- -spring.application.name=nacos-config #注意,spring.application.name 必须要放在bootstrap.properties中 +spring.application.name=nacos-config spring.cloud.nacos.config.server-addr=127.0.0.1:8848 ---- @@ -116,8 +120,7 @@ user name :nacos-config-properties; age: 90 === 基于 dataid 为 yaml 的文件扩展名配置方式 -spring-cloud-starter-alibaba-nacos-config 默认对 dateid 的文件扩展名是 properties。如果习惯使用yaml格式来作为应用中的基础配置,也是可以支持的。 -这个时候只需要完成以下两步: +spring-cloud-starter-alibaba-nacos-config 对于 yaml 格式也是完美支持。这个时候只需要完成以下两步: 1、在应用的 bootstrap.properties 配置文件中显示的声明 dataid 文件扩展名。如下所示 @@ -141,7 +144,7 @@ Group : DEFAULT_GROUP user.age: 68 ---- -这两步完成后,重启测试程序,可以在控制台看到输出是以dataid为opensource-service-provider3.yaml配置的值。 +这两步完成后,重启测试程序,可以在控制台看到输出是以dataid为 nacos-config.yaml 配置的值。 [source,subs="normal"] ---- @@ -152,7 +155,28 @@ user name :nacos-config-yaml; age: 68 === 支持配置的动态更新 -spring-cloud-starter-alibaba-nacos-config 也支持配置的动态更新,如下所示,当变更user.name时,应用程序中能够获取到最新的值: +spring-cloud-starter-alibaba-nacos-config 也支持配置的动态更新,启动 Spring Boot 应用测试的代码如下: + +[source,java] +---- +@SpringBootApplication +public class ProviderApplication { + + public static void main(String[] args) { + ConfigurableApplicationContext applicationContext = SpringApplication.run(ProviderApplication.class, args); + while(true) { + String userName = applicationContext.getEnvironment().getProperty("user.name"); + String userAge = applicationContext.getEnvironment().getProperty("user.age"); + //获取当前部署的环境 + String currentEnv = applicationContext.getEnvironment().getProperty("current.env"); + System.err.println("user name :" + userName + "; age: " + userAge); + TimeUnit.SECONDS.sleep(1); + } + } +} +---- + +如下所示,当变更user.name时,应用程序中能够获取到最新的值: [source,subs="normal"] ---- @@ -162,20 +186,23 @@ user name :nacos-config-yaml; age: 68 2018-11-02 15:04:25.069 INFO 32957 --- [-127.0.0.1:8848] o.s.boot.SpringApplication : Started application in 0.144 seconds (JVM running for 71.752) 2018-11-02 15:04:25.070 INFO 32957 --- [-127.0.0.1:8848] s.c.a.AnnotationConfigApplicationContext : Closing org.springframework.context.annotation.AnnotationConfigApplicationContext@10c89124: startup date [Fri Nov 02 15:04:25 CST 2018]; parent: org.springframework.context.annotation.AnnotationConfigApplicationContext@6520af7 2018-11-02 15:04:25.071 INFO 32957 --- [-127.0.0.1:8848] s.c.a.AnnotationConfigApplicationContext : Closing org.springframework.context.annotation.AnnotationConfigApplicationContext@6520af7: startup date [Fri Nov 02 15:04:24 CST 2018]; root of context hierarchy +//从 Enviroment 中 读取到更改后的值 user name :nacos-config-yaml-update; age: 68 user name :nacos-config-yaml-update; age: 68 ---- +NOTE: 你可以通过配置 `spring.cloud.nacos.config.refresh.enabled=false` 来关闭动态刷新 + === 可支持profile粒度的配置 -spring-cloud-starter-alibaba-nacos-config 在加载配置的时候,不仅仅加载了以dataid为${spring.application.name}.${file-extension:properties}为前缀的基础配置,还加载了dataid为${spring.application.name}-${profile}.${file-extension:properties}的基础配置。在日常开发中如果遇到多套环境下的不同配置,可以打开Spring自带的配置功能。 +spring-cloud-starter-alibaba-nacos-config 在加载配置的时候,不仅仅加载了以 dataid 为 `${spring.application.name}.${file-extension:properties}` 为前缀的基础配置,还加载了dataid为 `${spring.application.name}-${profile}.${file-extension:properties}` 的基础配置。在日常开发中如果遇到多套环境下的不同配置,可以打开 Spring 自带的配置功能。 [source,properties] ---- -spring.profiles.active=${deploy.env} +spring.profiles.active=develop ---- -其中 ${deploy.env}变量的值可以在启动应用时通过-Ddeploy.env=*****来动态指定。比如现在在Nacos上新增了一个dataid为:nacos-config-develop.yaml的基础配置,如下所示: +Nacos 上新增一个dataid为:nacos-config-develop.yaml的基础配置,如下所示: [source,subs="normal"] ---- @@ -188,7 +215,6 @@ Group : DEFAULT_GROUP 配置内容: current.env: develop-env ---- -同时启动应用的时候通过-Ddeploy.env=develop 来指定当前spring.profiles.active的值。 启动 Spring Boot 应用测试的代码如下: [source,java] @@ -217,7 +243,14 @@ in develop-evn enviroment; user name :nacos-config-yaml-update; age: 68 2018-11-02 15:34:25.013 INFO 33014 --- [ Thread-11] ConfigServletWebServerApplicationContext : Closing org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@6f1c29b7: startup date [Fri Nov 02 15:33:57 CST 2018]; parent: org.springframework.context.annotation.AnnotationConfigApplicationContext@63355449 ---- -如果需要切换到生产环境,那么只需要更改启动的-Ddeploy.env=product 参数即可。前提是生产环境上Nacos已经添加了该环境的基础配置。例如,现在在生成环境下的Naocs添加了dataid为:nacos-config-product.yaml的配置: +如果需要切换到生产环境,只需要更改 `${spring.profiles.active}` 参数配置即可。如下所示: + +[source,properties] +---- +spring.profiles.active=product +---- + +同时生产环境上Nacos需要添加该对应 dataid 的基础配置。例如,在生成环境下的 Naocs 添加了dataid为:nacos-config-product.yaml的配置: [source,subs="normal"] ---- @@ -230,7 +263,7 @@ Group : DEFAULT_GROUP 配置内容: current.env: product-env ---- -以-Ddeploy.env=product 启动测试程序,输出结果如下: +启动测试程序,输出结果如下: [source,subs="normal"] ---- @@ -238,4 +271,4 @@ in product-env enviroment; user name :nacos-config-yaml-update; age: 68 2018-11-02 15:42:14.628 INFO 33024 --- [Thread-11] ConfigServletWebServerApplicationContext : Closing org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@6aa8e115: startup date [Fri Nov 02 15:42:03 CST 2018]; parent: org.springframework.context.annotation.AnnotationConfigApplicationContext@19bb07ed ---- - +NOTE: 此案例中我们通过 `spring.profiles.active=****` 的方式写死在配置文件中,而在真正的项目实施过程中这个变量的值是需要不同环境而有不同的值。这个时候通常的做法是通过 `-Dspring.profiles.active=****` 参数指定其配置来达到环境间灵活的切换。 From cc965dc2fc9e26e168403b1e3bd7dc5f252e352d Mon Sep 17 00:00:00 2001 From: pbting <314226532@qq.com> Date: Tue, 27 Nov 2018 22:56:47 +0800 Subject: [PATCH 2/7] =?UTF-8?q?=E4=BF=AE=E6=AD=A3=E6=96=87=E6=A1=A3?= =?UTF-8?q?=E4=B8=AD=E7=9A=84=E8=A1=A8=E8=BF=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 修正文档中的表述 --- .../src/main/asciidoc-zh/nacos-config.adoc | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/spring-cloud-alibaba-docs/src/main/asciidoc-zh/nacos-config.adoc b/spring-cloud-alibaba-docs/src/main/asciidoc-zh/nacos-config.adoc index d703b91b..f78afc64 100644 --- a/spring-cloud-alibaba-docs/src/main/asciidoc-zh/nacos-config.adoc +++ b/spring-cloud-alibaba-docs/src/main/asciidoc-zh/nacos-config.adoc @@ -28,7 +28,7 @@ Group : DEFAULT_GROUP ==== 客户端使用方式 -为了能够在应用程序使用Nacos实现应用的外部化配置,在构建应用的同时添加一个Spring Boot Starter org.springframework.cloud:spring-cloud-starter-alibaba-nacos-config。以下是一个基础的maven 依赖配置: +为了能够在应用程序中使用 Nacos 来实现应用的外部化配置,在构建应用的同时添加一个Spring Boot Starter org.springframework.cloud:spring-cloud-starter-alibaba-nacos-config。以下是一个基础的 maven 依赖配置: [source,xml] ---- @@ -95,7 +95,7 @@ public class ProviderApplication { } ---- -spring-cloud-starter-alibaba-nacos-config 对于 Nacos 服务端的基础配置没有默认值,因此在运行此Example 之前, 必须使用 bootstrap.properties 配置文件来配置Nacos Server地址,例如: +spring-cloud-starter-alibaba-nacos-config 对于 Nacos 服务端的基础配置没有默认值,因此在运行此 Example 之前, 必须使用 bootstrap.properties 配置文件来配置Nacos Server地址,例如: .bootstrap.properties [source,properties] @@ -250,7 +250,7 @@ in develop-evn enviroment; user name :nacos-config-yaml-update; age: 68 spring.profiles.active=product ---- -同时生产环境上Nacos需要添加该对应 dataid 的基础配置。例如,在生成环境下的 Naocs 添加了dataid为:nacos-config-product.yaml的配置: +同时生产环境上 Nacos 需要添加对应 dataid 的基础配置。例如,在生成环境下的 Naocs 添加了dataid为:nacos-config-product.yaml的配置: [source,subs="normal"] ---- @@ -271,4 +271,4 @@ in product-env enviroment; user name :nacos-config-yaml-update; age: 68 2018-11-02 15:42:14.628 INFO 33024 --- [Thread-11] ConfigServletWebServerApplicationContext : Closing org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@6aa8e115: startup date [Fri Nov 02 15:42:03 CST 2018]; parent: org.springframework.context.annotation.AnnotationConfigApplicationContext@19bb07ed ---- -NOTE: 此案例中我们通过 `spring.profiles.active=****` 的方式写死在配置文件中,而在真正的项目实施过程中这个变量的值是需要不同环境而有不同的值。这个时候通常的做法是通过 `-Dspring.profiles.active=****` 参数指定其配置来达到环境间灵活的切换。 +NOTE: 此案例中我们通过 spring.profiles.active=**** 的方式写死在配置文件中,而在真正的项目实施过程中这个变量的值是需要不同环境而有不同的值。这个时候通常的做法是通过 -Dspring.profiles.active=**** 参数指定其配置来达到环境间灵活的切换。 From f7bcedc5db981eb8e7676339f00e8cbef51e2261 Mon Sep 17 00:00:00 2001 From: pbting <314226532@qq.com> Date: Tue, 27 Nov 2018 23:03:08 +0800 Subject: [PATCH 3/7] =?UTF-8?q?=E8=AE=A2=E6=AD=A3=E6=B5=8B=E8=AF=95?= =?UTF-8?q?=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 订正测试代码 --- .../src/main/asciidoc-zh/nacos-config.adoc | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/spring-cloud-alibaba-docs/src/main/asciidoc-zh/nacos-config.adoc b/spring-cloud-alibaba-docs/src/main/asciidoc-zh/nacos-config.adoc index f78afc64..cae0b797 100644 --- a/spring-cloud-alibaba-docs/src/main/asciidoc-zh/nacos-config.adoc +++ b/spring-cloud-alibaba-docs/src/main/asciidoc-zh/nacos-config.adoc @@ -12,7 +12,7 @@ Spring Cloud Alibaba Nacos Config 是 Config Server 和 Client 的替代方案 1、启动Nacos Server。启动方式可见 https://nacos.io/zh-cn/docs/quick-start.html[Nacos 官网] -2、启动好Nacos之后,在Nacos添加如下的配置。注意dataid是以 properties为扩展名,默认的文件扩展名方式。如下所示: +2、启动好Nacos之后,在Nacos添加如下的配置。如下所示: [source,subs="normal"] ---- @@ -26,6 +26,8 @@ Group : DEFAULT_GROUP user.age: 90 ---- +NOTE: 注意dataid是以 properties(默认的文件扩展名方式)为扩展名。 + ==== 客户端使用方式 为了能够在应用程序中使用 Nacos 来实现应用的外部化配置,在构建应用的同时添加一个Spring Boot Starter org.springframework.cloud:spring-cloud-starter-alibaba-nacos-config。以下是一个基础的 maven 依赖配置: @@ -95,7 +97,7 @@ public class ProviderApplication { } ---- -spring-cloud-starter-alibaba-nacos-config 对于 Nacos 服务端的基础配置没有默认值,因此在运行此 Example 之前, 必须使用 bootstrap.properties 配置文件来配置Nacos Server地址,例如: +在运行此 Example 之前, 必须使用 bootstrap.properties 配置文件来配置Nacos Server 地址,例如: .bootstrap.properties [source,properties] @@ -108,7 +110,7 @@ NOTE: 注意当你使用域名的方式来访问 Nacos 时,`spring.cloud.nacos 例如 Nacos 的域名为abc.com.nacos,监听的端口为 80,则 `spring.cloud.nacos.config.server-addr=abc.com.nacos:80`。 注意 80 端口不能省略。 -启动这个Example,可以在控制台看到打印出的值正是在Nacos上预先配置好的值。 +启动这个 Example,可以在控制台看到打印出的值是在Nacos上预先配置的值。 [source,subs="normal"] ---- @@ -120,7 +122,7 @@ user name :nacos-config-properties; age: 90 === 基于 dataid 为 yaml 的文件扩展名配置方式 -spring-cloud-starter-alibaba-nacos-config 对于 yaml 格式也是完美支持。这个时候只需要完成以下两步: +spring-cloud-starter-alibaba-nacos-config 对于 yaml 格式也是完美支持的。这个时候只需要完成以下两步: 1、在应用的 bootstrap.properties 配置文件中显示的声明 dataid 文件扩展名。如下所示 @@ -165,10 +167,9 @@ public class ProviderApplication { public static void main(String[] args) { ConfigurableApplicationContext applicationContext = SpringApplication.run(ProviderApplication.class, args); while(true) { + //当动态配置刷新时,会更新到 Enviroment中,因此这里每隔一秒中从Enviroment中获取配置 String userName = applicationContext.getEnvironment().getProperty("user.name"); String userAge = applicationContext.getEnvironment().getProperty("user.age"); - //获取当前部署的环境 - String currentEnv = applicationContext.getEnvironment().getProperty("current.env"); System.err.println("user name :" + userName + "; age: " + userAge); TimeUnit.SECONDS.sleep(1); } From 6e85bbf2c1aaff9377418d11ab26a564f0b087ec Mon Sep 17 00:00:00 2001 From: pbting <314226532@qq.com> Date: Tue, 27 Nov 2018 23:04:32 +0800 Subject: [PATCH 4/7] Update nacos-config.adoc --- .../src/main/asciidoc-zh/nacos-config.adoc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spring-cloud-alibaba-docs/src/main/asciidoc-zh/nacos-config.adoc b/spring-cloud-alibaba-docs/src/main/asciidoc-zh/nacos-config.adoc index cae0b797..f7a6a345 100644 --- a/spring-cloud-alibaba-docs/src/main/asciidoc-zh/nacos-config.adoc +++ b/spring-cloud-alibaba-docs/src/main/asciidoc-zh/nacos-config.adoc @@ -272,4 +272,4 @@ in product-env enviroment; user name :nacos-config-yaml-update; age: 68 2018-11-02 15:42:14.628 INFO 33024 --- [Thread-11] ConfigServletWebServerApplicationContext : Closing org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@6aa8e115: startup date [Fri Nov 02 15:42:03 CST 2018]; parent: org.springframework.context.annotation.AnnotationConfigApplicationContext@19bb07ed ---- -NOTE: 此案例中我们通过 spring.profiles.active=**** 的方式写死在配置文件中,而在真正的项目实施过程中这个变量的值是需要不同环境而有不同的值。这个时候通常的做法是通过 -Dspring.profiles.active=**** 参数指定其配置来达到环境间灵活的切换。 +NOTE: 此案例中我们通过 spring.profiles.active=XXXX 的方式写死在配置文件中,而在真正的项目实施过程中这个变量的值是需要不同环境而有不同的值。这个时候通常的做法是通过 -Dspring.profiles.active=XXXX 参数指定其配置来达到环境间灵活的切换。 From 19bb1d71c6380deb3123926528f138d24d6d1b26 Mon Sep 17 00:00:00 2001 From: pbting <314226532@qq.com> Date: Wed, 28 Nov 2018 11:26:03 +0800 Subject: [PATCH 5/7] Update nacos-config.adoc --- .../src/main/asciidoc-zh/nacos-config.adoc | 2 ++ 1 file changed, 2 insertions(+) diff --git a/spring-cloud-alibaba-docs/src/main/asciidoc-zh/nacos-config.adoc b/spring-cloud-alibaba-docs/src/main/asciidoc-zh/nacos-config.adoc index f7a6a345..6aef3fec 100644 --- a/spring-cloud-alibaba-docs/src/main/asciidoc-zh/nacos-config.adoc +++ b/spring-cloud-alibaba-docs/src/main/asciidoc-zh/nacos-config.adoc @@ -203,6 +203,8 @@ spring-cloud-starter-alibaba-nacos-config 在加载配置的时候,不仅仅 spring.profiles.active=develop ---- +NOTE: ${spring.profiles.active} 当通过配置文件来指定时必须放在 bootstrap.properties 文件中。 + Nacos 上新增一个dataid为:nacos-config-develop.yaml的基础配置,如下所示: [source,subs="normal"] From c3c5ed5a1ed4807b73dc829f064a7c5f2aa43c93 Mon Sep 17 00:00:00 2001 From: pbting <314226532@qq.com> Date: Wed, 28 Nov 2018 14:39:31 +0800 Subject: [PATCH 6/7] Update nacos-config.adoc --- .../src/main/asciidoc-zh/nacos-config.adoc | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/spring-cloud-alibaba-docs/src/main/asciidoc-zh/nacos-config.adoc b/spring-cloud-alibaba-docs/src/main/asciidoc-zh/nacos-config.adoc index 6aef3fec..b1e8aa24 100644 --- a/spring-cloud-alibaba-docs/src/main/asciidoc-zh/nacos-config.adoc +++ b/spring-cloud-alibaba-docs/src/main/asciidoc-zh/nacos-config.adoc @@ -12,7 +12,7 @@ Spring Cloud Alibaba Nacos Config 是 Config Server 和 Client 的替代方案 1、启动Nacos Server。启动方式可见 https://nacos.io/zh-cn/docs/quick-start.html[Nacos 官网] -2、启动好Nacos之后,在Nacos添加如下的配置。如下所示: +2、启动好Nacos之后,在Nacos添加如下的配置: [source,subs="normal"] ---- @@ -20,17 +20,17 @@ Data ID: nacos-config.properties Group : DEFAULT_GROUP -配置格式: TEXT +配置格式: Properties -配置内容: user.name: nacos-config-properties - user.age: 90 +配置内容: user.name=nacos-config-properties + user.age=90 ---- NOTE: 注意dataid是以 properties(默认的文件扩展名方式)为扩展名。 ==== 客户端使用方式 -为了能够在应用程序中使用 Nacos 来实现应用的外部化配置,在构建应用的同时添加一个Spring Boot Starter org.springframework.cloud:spring-cloud-starter-alibaba-nacos-config。以下是一个基础的 maven 依赖配置: +为了能够在应用程序中使用 Nacos 来实现应用的外部化配置,在构建应用的同时添加一个Spring Boot Starter org.springframework.cloud:spring-cloud-starter-alibaba-nacos-config。以下是一个基本的 maven 依赖配置: [source,xml] ---- @@ -110,7 +110,7 @@ NOTE: 注意当你使用域名的方式来访问 Nacos 时,`spring.cloud.nacos 例如 Nacos 的域名为abc.com.nacos,监听的端口为 80,则 `spring.cloud.nacos.config.server-addr=abc.com.nacos:80`。 注意 80 端口不能省略。 -启动这个 Example,可以在控制台看到打印出的值是在Nacos上预先配置的值。 +启动这个 Example,可以看到如下输出结果: [source,subs="normal"] ---- @@ -146,7 +146,7 @@ Group : DEFAULT_GROUP user.age: 68 ---- -这两步完成后,重启测试程序,可以在控制台看到输出是以dataid为 nacos-config.yaml 配置的值。 +这两步完成后,重启测试程序,可以看到如下输出结果。 [source,subs="normal"] ---- @@ -196,7 +196,7 @@ NOTE: 你可以通过配置 `spring.cloud.nacos.config.refresh.enabled=false` === 可支持profile粒度的配置 -spring-cloud-starter-alibaba-nacos-config 在加载配置的时候,不仅仅加载了以 dataid 为 `${spring.application.name}.${file-extension:properties}` 为前缀的基础配置,还加载了dataid为 `${spring.application.name}-${profile}.${file-extension:properties}` 的基础配置。在日常开发中如果遇到多套环境下的不同配置,可以打开 Spring 自带的配置功能。 +spring-cloud-starter-alibaba-nacos-config 在加载配置的时候,不仅仅加载了以 dataid 为 `${spring.application.name}.${file-extension:properties}` 为前缀的基础配置,还加载了dataid为 `${spring.application.name}-${profile}.${file-extension:properties}` 的基础配置。在日常开发中如果遇到多套环境下的不同配置,可以通过Spring 提供的 `${spring.profiles.active}` 这个配置项来配置。 [source,properties] ---- From 71522fc027dfa4e8298b06b13eee2a8eba62cb04 Mon Sep 17 00:00:00 2001 From: pbting <314226532@qq.com> Date: Wed, 28 Nov 2018 17:21:19 +0800 Subject: [PATCH 7/7] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E4=B8=A4=E4=B8=AA?= =?UTF-8?q?=E9=85=8D=E7=BD=AE=E7=9A=84=E8=AF=B4=E6=98=8E?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 1、新增 自定义 namespace 的配置说明 2、新增自定义 Group 的配置说明 --- .../src/main/asciidoc-zh/nacos-config.adoc | 22 +++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/spring-cloud-alibaba-docs/src/main/asciidoc-zh/nacos-config.adoc b/spring-cloud-alibaba-docs/src/main/asciidoc-zh/nacos-config.adoc index b1e8aa24..66a76abd 100644 --- a/spring-cloud-alibaba-docs/src/main/asciidoc-zh/nacos-config.adoc +++ b/spring-cloud-alibaba-docs/src/main/asciidoc-zh/nacos-config.adoc @@ -275,3 +275,25 @@ in product-env enviroment; user name :nacos-config-yaml-update; age: 68 ---- NOTE: 此案例中我们通过 spring.profiles.active=XXXX 的方式写死在配置文件中,而在真正的项目实施过程中这个变量的值是需要不同环境而有不同的值。这个时候通常的做法是通过 -Dspring.profiles.active=XXXX 参数指定其配置来达到环境间灵活的切换。 + +=== 支持自定义 namespace 的配置 + +在没有明确指定 `${spring.cloud.nacos.config.namespace}` 配置的情况下, 默认使用的是 Nacos 上 Public 这个namespae。在我们日常业务的开发过程中,经常需要自定义自己的 namespace,那这个时候可以通过以下配置来实现: + +[source,properties] +---- +spring.cloud.nacos.config.namespace=b3404bc0-d7dc-4855-b519-570ed34b62d7 +---- + +NOTE: 该配置必须放在 bootstrap.properties 文件中。此外 `spring.cloud.nacos.config.namespace` 的值是 namespace 对应的 id,id 值可以在 Nacos 的控制台获取。并且在添加配置时注意不要选择其他的 namespae,否则将会导致读取不到正确的配置。 + +=== 支持自定义 Group 的配置 + +在没有明确指定 `${spring.cloud.nacos.config.group}` 配置的情况下, 默认使用的是 DEFAULT_GROUP 。在我们日常业务的开发过程中,经常需要自定义自己的 Group,那这个时候可以通过以下配置来实现: + +[source,properties] +---- +spring.cloud.nacos.config.group=DEVELOP_GROUP +---- + +NOTE: 该配置必须放在 bootstrap.properties 文件中。并且在添加配置时 Group 的值一定要和 `spring.cloud.nacos.config.group` 的配置值一致。