springboot集成nacos配置管理
个人实践:
Namespace用来区分环境,例如:开发环境、测试环境、生产环境。
Group用来区分不同的应用。
DataId用来区分配置,例如:mysql配置,redis配置,kafka配置。
0、前提:已安装启动nacos。
去控制台创建新的命名空间:


在develop命名空间下,创建新的配置:dataId=mysql,group=yzh-maven


1、引入jar包
<!-- https://mvnrepository.com/artifact/com.alibaba.boot/nacos-config-spring-boot-starter -->
<dependency>
<groupId>com.alibaba.boot</groupId>
<artifactId>nacos-config-spring-boot-starter</artifactId>
<version>0.2.12</version>
</dependency>
注意:版本 0.2.x.RELEASE 对应的是 Spring Boot 2.x 版本,版本 0.1.x.RELEASE 对应的是 Spring Boot 1.x 版本。
2、application.properties配置
## nacos配置
# 开启配置预加载功能
nacos.config.bootstrap.enable=true
nacos.config.server-addr=127.0.0.1:8848
nacos.config.namespace=56705fdc-7fb8-45bc-80aa-f79c7d94baa5
nacos.config.group=yzh-maven
#nacos.config.data-id=mysql
nacos.config.data-ids=mysql,redis
# 配置文件类型
nacos.config.type=properties
# 开启自动刷新
nacos.config.auto-refresh=true
官方配置说明:spring boot 0.2.2 以及 0.1.2版本新功能使用手册 · nacos-group/nacos-spring-boot-project Wiki · GitHub
3、代码使用
@RestController
@RequestMapping("/nacos")
@Slf4j
public class NacosController {
/**
* 自动刷新
*/
@NacosValue(value = "${name}", autoRefreshed = true)
private String name;
/**
* 不会自动刷新
*/
@Value(value = "${password}")
private String password;
@GetMapping("/get")
public String get() {
log.info("name={}, password={}", name, password);
return "name=" + name + ", password=" + password;
}
}
4、浏览器请求
http://localhost:8180/nacos/get
name=admin, password=123
修改配置后重新请求(name值更新了,password值未更新):
name=admin22, password=123
Open API
例:发布配置,post请求,
curl -X POST "http://127.0.0.1:8848/nacos/v1/cs/configs?tenant=56705fdc-7fb8-45bc-80aa-f79c7d94baa5&dataId=mysql&group=yzh-maven&content=name=admin2"