Nacos官网文档:Nacos 融合 Spring Cloud,成为注册配置中心
【1】服务实例
① pom依赖
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>
② yml配置
bootstrap.yml:
server:
port: 3377
spring:
application:
name: nacos-config-client
cloud:
nacos:
discovery:
server-addr: localhost:8848 # 服务注册中心
config:
server-addr: localhost:8848 # 服务注册中心
file-extension: yaml # 指定yaml格式的配置
group: DEFAULT_GROUP
application.yml:
spring:
profiles:
active: dev # 表示开发环境
③ 服务类
通过 Spring Cloud 原生注解 @RefreshScope 实现配置自动更新:
@RestController
@RefreshScope // 动态刷新
public class ConfigClientController {
@Value("${config.info}")
private String configInfo;
@GetMapping("/config/info")
public String getConfigInfo(){
return configInfo;
}
}
@SpringBootApplication
@EnableDiscoveryClient
public class NacosConfigClientMain3377 {
public static void main(String[] args) {
SpringApplication.run(NacosConfigClientMain3377.class,args);
}
}
④ Nacos添加配置
测试如下-http://localhost:3377/config/info:
修改Nacos配置,再次刷新请求会发现获取到的信息已经发生改变。
【2】Nacos的DATAID说明
在 Nacos Spring Cloud 中,dataId 的完整格式如下:
${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 类型。