一、为服务整合配置中心
1. 加依赖
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>
2. 写配置
在bootstrap.properties
中配置 Nacos server 的地址和应用名,如果没有bootstrap.properties文件则新建。
#配置中心地址
spring.cloud.nacos.config.server-addr=127.0.0.1:8848
#应用名称
spring.application.name=micro-provider
#环境
spring.profiles.active=dev
3. 添加配置
在nacos server的配置列表点击添加配置
这里Date ID的命名规则约定大于配置:
p
r
e
f
i
x
−
{prefix}-
prefix−{spring.profiles.active}.${file-extension}`
- prefix 默认为 spring.application.name 的值,也可以通过配置项 spring.cloud.nacos.config.prefix来配置。
- spring.profiles.active 即为当前环境对应的 profile,详情可以参考 Spring Boot文档。 注意:当 spring.profiles.active 为空时,对应的连接符 - 也将不存在,dataId 的拼接格式变成
${prefix}.${file-extension}
- file-exetension 为配置内容的数据格式,可以通过配置项 spring.cloud.nacos.config.file-extension 来配置。目前只支持 properties 和 yaml 类型。
4. 增加测试接口
@Value("${version}")
private String version ;
@GetMapping("/version")
public String version(){
return version;
}
5. 测试
二、多环境管理
在世界开发中,我们需要对不同环境进行隔离,例如开发测试环境和生产环境的资源(如配置、服务)隔离。这里我们就用到了Nacos的命名空间(namespace)来做处理
- 在bootstrap.properties文件中增加配置
#控制台创建命名空间得到的uuid
spring.cloud.nacos.config.namespace=a41d34a1-4732-4322-90fe-c6ebbcdc0206
- 在相应环境下创建配置
三、配置共享
1. 不同环境的配置共享
在应用的启动日志中我们可以看到
应用会自动去nacos中拉取命名为micro-provider-dev.properties, micro-provider.properties
这里我们创建 micro-provider.properties配置,
修改bootstrap.properties中配置
spring.profiles.active=prod
重启服务,测试
2. 不同应用的配置共享
很多时候,我们不同服务会使用相同的配置,例如nacos注册中心,数据库等等,这就需要我们不同应用共享配置了
在bootstrap.properties中增加配置项:
spring.cloud.nacos.config.shared-dataids=common.properties
增加测试接口
@Value("${common-config}")
private String commonConfig ;
@GetMapping("/common/config")
public String commonConfig(){
return commonConfig;
}
重启测试: