
可用于对各个服务进行统一配置,并且可以通过修改配置信息来进行服务更新,而不用重启服务
进入配置列表添加文件

配置信息

配置文件的Data ID:[服务名称]-[环境].[后缀名] (取名要规范,要不然获取不到该文件)
格式:目前支持 yaml 和 properties
配置获取步骤:

在项目启动时,bootstrap.yml 优先级大于 application.yml,所以可以将 nacos 相关配置信息放入 bootstrap.yml 中用于先读取 nacos中的配置文件
在 pom.xml 中引入 Nacos 的配置管理客户端依赖
com.alibaba.cloud spring-cloud-starter-alibaba-nacos-config
在 resource 目录添加 bootstrap.yml 文件,进行配置,其优先级高于 application.yml 文件
spring:application:name: user_service # 服务名称profiles:active: dev # 开发环境cloud:nacos:# nacos 地址server-addr: localhost:8848config:file-extension: yaml # 文件后缀名
可以看到,其 服务名称、开发环境、文件后缀名 是要与Nacos控制台中配置文件名 [服务名称]-[环境].[后缀名] 进行对应的
通过 @Value("${xxx.xxx}") 从配置文件读取值
Nacos 中的配置文件变更后,微服务无需重启就可以感知
在 @Value 注入的变量所在类上添加注解 @RefreshScope 实时刷新
@Slf4j
@RestController
@RequestMapping("/user")
@RefreshScope
public class UserController {@Value("${pattern.name}")private String name;@GetMapping("/cfg")public String showCfg() {return name;}
}
创建一个该属性的类进行属性封装,使用 @ConfigurationProperties 注解自动装配属性
@Component
@Data
@ConfigurationProperties(prefix = "pattern") // 前缀对应的是Nacos配置文件中首字段
public class PatternProperties {private String name;private String age;
}
微服务启动时,会从nacos读取多个配置文件:
无论环境如何变化,[服务名称].[后缀名] 这个文件一定会加载,因此多环境共享配置可以写入这个文件

当 本地配置文件属性 与 nacos 配置文件中 [服务名称]-[环境].[后缀名],[服务名称].[后缀名] 属性重复时,遵循的优先级为:
[服务名称]-[环境].[后缀名] > [服务名称].[后缀名] > 本地配置
即 远端配置 高于 本地配置
在远端配置中,附有环境配置 高于 共享配置
上一篇:OpenCV-眼睛控制鼠标