【SpringCloud+RabbitMQ+Docker+Redis+搜索+分布式,系统详解springcloud微服务技术栈课程|黑马程序员Java微服务】
OK,我们之前已经把部分配置放到了Nacos 中
【我们的微服务如何得到这些配置?】
没使用Nacos 时配置获取的步骤如下:
现在使用了Nacos ,就变成了下面这样儿
看起来很简单,其实在我们读取Nacos 配置文件时,
需要先知道一些信息:
① 去哪儿读?
② 读谁?
现在的问题就是Nacos 地址等信息需要在读取本地配置文件application.yml 之前就得到
这个时候bootstrap.yml 文件来了
这个配置文件的优先级比application.yml 的优先级高很多
① 引入Nacos的配置管理客户端依赖
【在user-service 中】
<dependency>
<groupId>com.alibaba.cloudgroupId>
<artifactId>spring-cloud-starter-alibaba-nacos-configartifactId>
dependency>
② 在userservice中的resource目录添加一个bootstrap.yml文件,这个文件是引导文件,优先级高于application.yml:
bootstrap.yml
spring:
application:
name: userservice
profiles:
active: dev # 环境
cloud:
nacos:
server-addr: localhost:8848 #Nacos地址
config:
file-extension: yaml # 文件后缀名
③ 删除application.yml 配置文件中重复的配置
OK,这样就行了,但是,要证明一下我们真的拉到配置了
直接读它
@Value("${pattern.dateformat}")
private String dateformat;
@GetMapping("now")
public String now(){
return LocalDateTime.now().format(DateTimeFormatter.ofPattern(dateformat));
}
调用这个接口,它就会按照Nacos 配置文件中的格式返回当前的时间数据
OK,直接重启服务【老师把user 3 删了,那我也删了】
重启8081 和 8082
OK,直接测试
访问:localhost:8081/user/now
可以看到个格式化成功了
试试8082:localhost:8082/user/now
没毛病【这足以说明我们确实拉取到了 配置】
OK,这样就行了,回顾一下
①
②
将配置交给Nacos管理的步骤: