nacos管理配置文件方式是在自己所在的服务器上形成一个版本库,因此不需要再创建远程版本库。 Nacos作为统一配置中心管理配置文件时,同样也是存在版本控制。
<!--引入nacos client 依赖-->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>
<!--引入配置中心依赖-->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>
文件名必须为bootstrap.properties
# 告诉config server地址
spring.cloud.nacos.config.server-addr=192.168.159.22:8848
#从哪个命名空间获取配置(命名空间ID)
spring.cloud.nacos.config.namespace=781c1432-8a70-413f-aaa8-559cac6057ed
#告诉从哪个组进行配置获取
spring.cloud.nacos.config.group=DEFAULT_GROUP
#从这个组中拉取哪个配置文件
spring.cloud.nacos.config.name=configclient-prod
#指定读取文件后缀
spring.cloud.nacos.config.file-extension=properties
记住custom.username这个值,我们在后面会用到,先不用管上面的public|EMS|dangdang三个命名空间。
@RestController
@RefreshScope //允许远端配置修改自动刷新
@Slf4j
public class DemoController {
@Value("${custom.username}")
private String username;
@GetMapping("/demo")
public String demo(){
log.info("demo ok!!!");
return "demo ok !!! username:"+username;
}
}
可以看到,配置拉取成功了。
默认情况下nacos已经实现了自动配置刷新功能,如果需要刷新配置直接在控制器中加入@@RefreshScope
注解即可。
我们现在nacos上修改配置
点击发布:
测试,可以看到配置已经自动刷新了,真的比config+consul+bus那个简单多了,阿里云好牛逼。
用来读取远程配置中心的中具体配置文件其完整格式如下:
${prefix}-${spring.profile.active}.${file-extension}
# 告诉config server地址
spring.cloud.nacos.config.server-addr=192.168.159.22:8848
#从哪个命名空间获取配置(命名空间ID)
spring.cloud.nacos.config.namespace=781c1432-8a70-413f-aaa8-559cac6057ed
#告诉从哪个组进行配置获取
#spring.cloud.nacos.config.group=DEFAULT_GROUP
spring.cloud.nacos.config.group=CONFIGCLIENT
#第一种配置文件获取方式 dataId=name+file-extension
#从这个组中拉取哪个配置文件
spring.cloud.nacos.config.name=configclient-prod
#指定读取文件后缀
spring.cloud.nacos.config.file-extension=properties
# 告诉config server地址
spring.cloud.nacos.config.server-addr=192.168.159.22:8848
#从哪个命名空间获取配置(命名空间ID)
spring.cloud.nacos.config.namespace=781c1432-8a70-413f-aaa8-559cac6057ed
#告诉从哪个组进行配置获取
#spring.cloud.nacos.config.group=DEFAULT_GROUP
spring.cloud.nacos.config.group=CONFIGCLIENT
#第二种配置文件获取方式 dataId=prefix+env+file-extension
spring.cloud.nacos.config.prefix=configclient
spring.profiles.active=prod
spring.cloud.nacos.config.file-extension=properties
默认nacos安装完成之后会有一个默认的命名空间,这个命名空间的名字为public。 作用:站在项目总角度隔离每一个项目配置文件。
默认nacos中在管理配置文件时不显示指定group名称则默认的组名称为DEFAULT_GROUP 作用:站在项目中每个服务角度,隔离同一个项目中不同服务的配置
获取一个配置文件的唯一标识。