统一配置管理:
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中的配置文件变更后,微服务无需重启就可以感知。不过需要通过下面两种配置实现。
配置自动刷新有两种方式:
一:在@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配置更改后,微服务可以实现热更新,两种方式:
注意事项:
多环境配置共享
微服务启动时会从nacos读取多个配置文件:
无论profile如何变化,[spring.application.name].yaml这个文件一定会加载,因此多环境共享配置可以写入[spring.application.name].yaml这个文件。
微服务会从nacos读取的配置文件:
优先级:
[服务名]-[环境].yaml >[服务名].yaml > 本地配置