统一配置管理:
1.在Nacos中添加配置信息:
2.在弹出表单中填写配置信息:
配置获取的步骤如下:先获取nacos中的配置文件,再读取本地配置文件,nacos中的配置配置文件等级高于本地配置文件。
3.引入Nacos的配置管理客户端依赖:
com.alibaba.cloud
spring-cloud-starter-alibaba-nacos-config
4.在resource目录添加一个bootstrap.yml文件,这个文件是引导文件,优先级高application.yml,并作出如下配置。
spring:
application:
name: userservice # 服务名
profiles:
active: dev # 环境
cloud:
nacos:
server-addr: localhost:8848 # nacos地址
config:
file-extension: yaml # 文件后缀名
discovery:
cluster-name: CQ # 集群名称,这代指重庆
将配置交给Nacos管理的步骤
① 在 Nacos 中添加配置文件 ② 在微服务中引入 nacos 的 config 依赖 ③ 在微服务中添加 bootstrap.yml ,配置 nacos 地址、当前环境、服务名称、文件后缀名。这些决定了程序启动时去 nacos 读取哪个文件配置自动刷新
Nacos中的配置文件变更后,微服务无需重启就可以感知。不过需要通过下面两种配置实现。
配置自动刷新有两种方式:
一:在@Value注入的变量所在类上添加注解@RefreshScope
@RestController
@RequestMapping("/user")
@RefreshScope
public class UserController {
@Value("${pattern.dateformat}")
private String dateformat;
@GetMapping("/now")
public String now(){
return LocalDateTime.now().format(DateTimeFormatter.ofPattern(patterProperties.getDateformat()));
}
}
二:使用@ConfigurationProperties注解
@Data
@Component
@ConfigurationProperties("pattern")
public class PatterProperties {
private String dateformat;
}
Nacos配置更改后,微服务可以实现热更新,两种方式:
① 通过 @Value 注解注入,结合 @RefreshScope 来刷新 ② 通过 @ConfigurationProperties 注入,自动刷新注意事项:
• 不是所有的配置都适合放到配置中心,维护起来比较麻烦 • 建议将一些关键参数,需要运行时调整的参数放到 nacos 配置中心,一般都是自定义配置多环境配置共享
微服务启动时会从nacos读取多个配置文件:
l [spring.application.name]-[ spring.profiles.active ]. yaml ,例如: userservice-dev.yaml l [spring.application.name]. yaml ,例如: userservice.yaml无论profile如何变化,[spring.application.name].yaml这个文件一定会加载,因此多环境共享配置可以写入[spring.application.name].yaml这个文件。
微服务会从nacos读取的配置文件:
1.[ 服务名 ]-[ spring.profile.active ]. yaml ,环境配置 2.[ 服务名 ]. yaml ,默认配置,多环境共享优先级:
[服务名]-[环境].yaml >[服务名].yaml > 本地配置



