前面文字使用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
8spring:
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
- Github:SpringCloud-Alibaba-Example