在之前的章节中,我们并没有对SpringCloud Alibaba Nacos Config的NameSpace、Group做过修改,都是使用的默认值,默认值分别是:Public、DEFAULT_GROUP,我们本章来看下如何自定义这两项参数。
在之前文章中我们学习到了SpringCloud Alibaba读取Nacos Config内定义的properties、Yaml类型的配置文件信息、配置信息实时更新、Profile环境下的配置信息读取优先级等。
开始本章
本章同样需要在Nacos Console控制台添加我们需要的配置信息。
Nacos Server
需要在本地安装Nacos Server才能完成本章的内容讲解,具体的安装步骤访问Nacos 官方文档
添加配置
我们通过访问本地的Nacos Console控制台添加本章所需要的配置信息。
添加自定义的NameSpace
不过在添加配置之前我们需要先来自定义一个namespace,如下图所示:
添加完成后在命名空间列表内有一个我们需要用到的参数命名空间ID,这个参数需要配置到我们的应用程序内,下面进行讲解。
回到配置列表后在顶部我们点击测试命名空间就可以查看该NameSpace下所有的配置列表。
添加本章使用的配置信息如下图所示:

在上图中我们定义的Group为hengboy,该参数也需要接下来配置在应用程序内。
创建应用
第一步:创建应用程序
通过Idea开发工具创建一个SpringBoot项目并添加本章使用的依赖信息,pom.xml如下所示:
//...
<properties>
<java.version>1.8</java.version>
<spring-cloud.version>Greenwich.RELEASE</spring-cloud.version>
<spring-cloud-alibaba.version>0.2.1.RELEASE</spring-cloud-alibaba.version>
</properties>
<dependencies>
<!--spring cloud alibaba config-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
</dependencies>
<dependencyManagement>
<!--SpringCloud-->
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>${spring-cloud.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<!--SpringCloud Alibaba-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-alibaba-dependencies</artifactId>
<version>${spring-cloud-alibaba.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
第二步:bootstrap.yml配置
创建bootstrap.yml配置文件,添加如下配置信息:
spring:
application:
name: hengboy-sca-nacos-config-namespace
cloud:
nacos:
config:
server-addr: 127.0.0.1:8848
file-extension: yaml
# 自定义namespace
namespace: 52cfe0c1-746c-4f82-b161-a8799af1b1e9
# 自定义分组
group: hengboy
spring.cloud.nacos.config.namespace
配置自定义的namespace的ID,该值可以在Nacos Console控制台命名空间列表中获得。
spring.cloud.nacos.config.group
配置自定义的group,该值是在添加配置信息时输入的值,也就是hengboy。
第三步:读取配置信息
我们通过一个单元测试来读取配置信息,如下所示:
@RunWith(SpringRunner.class)
@SpringBootTest
public class ConfigNameSpaceTest {
/**
* logger instance
*/
static Logger logger = LoggerFactory.getLogger(ConfigNameSpaceTest.class);
/**
* 配置信息
*/
@Value(value = "${hengboy.name:}")
private String name;
@Test
public void getConfig() {
logger.info("获取配置信息:{}", name);
}
}
第四步:运行测试
执行ConfigNameSpaceTest#getConfig单元测试方法,查看控制台输出内容如下所示:
2019-03-05 15:55:17.388 INFO 81736 --- [ main] c.y.c.s.a.n.c.n.ConfigNameSpaceTest : 获取配置信息:yuqiyu
总结
自定义配置NameSpace、Group对于SpringCloud Alibaba Nacos Config来说是比较简单的,只需要简单的配置就可以,如果你的系统模块较多,建议使用namespace、group来进行划分,这样就可以更好的管理配置信息。