SpringCloud Alibaba Nacos配置中心

前面文字使用nacos注册中心,本文记录使用nacos配置中心功能

版本介绍

  • Springboot2.1.9.RELEASE
  • SpringCloud Greenwich.SR3
  • SpringCloudAlibaba2.1.0.RELEASE

前提条件

下载并启动nacos服务,上一篇《SpringCloud Alibaba Nacos注册中心》中有简单的说明

进入nacos控制台,新建一个配置命名为nacos-config.yml,并且选择配置格式为YAML并且配置内容,最后发布即可

创建应用

本项目也是上文中父级项目下创建的,创建标准的maven项目example-nacos-config,pom中添加依赖

1
2
3
4
5
6
7
8
9
10
<!--web支持-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!--nacos配置中心-->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>

创建项目启动类NacosConfigApplication,在启动类里建一个restful接口,用来验证配置是否正确获取。从这里可以发现这个基本就是一个标准的SpringBoot应用,@RefreshScope可以实现动态刷新配置值

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
@SpringBootApplication
public class NacosConfigApplication {
public static void main(String[] args) {
SpringApplication.run(NacosConfigApplication.class,args);
}

@RestController
@RefreshScope
static class NacosConfigController{
@Value("${test.value}")
private String testValue;

@GetMapping("/getTestValue")
public String getTestValue(){
return testValue;
}
}
}

新建配置文件bootsrap.yml,注意这里必须要建bootstrap名字的配置文件,bootstrap的配置文件优先级比其他名称的配置文件要高,配置好应用名称,这里应用名称选择跟nacos中新增配置文件Data ID一样(不包含后缀),具体名称规则详细可以参考官方

1
2
3
4
5
6
7
8
spring:
application:
name: nacos-config
cloud:
nacos:
config:
server-addr: 127.0.0.1:8848
file-extension: yml #指定配置文件后缀

最后启动应用

验证`

使用Postman工具请求接口http://localhost:8080/getTestValue 可以看到返回hello test value

紧接着,在nacos中修改配置内容,将值改为hello test value-update

你会发现在应用控制台打出一个日志,表示配置更新了

用Postman再次请求接口,返回的配置值变成了hello test value-update

说明更改配置生效

参考资料

代码示例

具体项目名为example-nacos-config

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×