第二天 a:
Nacos配置管理:
1.统一配置管理:
nacos不光提供注册中心的作用也有提供配置管理的作用。它的用处是让服务中注入某种配置。
那如何进行配置呢?
1.在nacos中找到配置管理,在右上角有一个加号,点击完就会进入。
2.会进入这个界面,这时你要对Data Id 和配置格式进行修改。
3.在这里我们对于Data Id要做出以下改动:命名为:服务名称_环境类型.yaml,这里的yaml指的时其文件的格式,注意:不要缩写成yml。
如图设置。当然也可以在描述中对你的配置的功能进行描述。
4.这时,我们要对配置进行修改。(注意:这里的配置并不是把在yml文件中的所有配置都复制过来,而是把我们要进行热更新的配置拿过来用)
统一配置管理:
在原来的项目中,是先在application.yml文件去寻找配置,再创建spring容器,并加载bean。
但在加入nacos时,会让项目p的启动先经过nacos中的配置文件。而这个配置文件则需要在bootstrap.yml这个文件中加入nacos的地址。从而才能让它的配置读取经过nacos中注入的配置文件。
如何在yml文件中进行配置:定位
1.首先在服务端的pom文件中加入依赖:
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>
2.再加入bootstarp.yml文件中加入配置。这个文件需要加在服务端的resource中,这是一个引导类的文件,优先级高于application.yml文件。
spring:
application:
name: userService #服务名称
profiles:
active: dev #开发环境
cloud:
nacos;
server-addr:localhost:8084 #nacos地址
config:
file-extension: yaml # 文件后缀
大家在这里是不是看到了一些和上面在nacos配置中一样的值,name+active+file-extension 和 DataId是一样的,是先通过网址找到nacos,再到nacos里根据DataId选择相应配置。在之前在服务中重复的部分可以删除掉。
3.测试是否注入了配置,在controller中进行配置。
@RestController
@RequestMapping("/user")
public class UserController{
@Value("${pattern.dateformat}")
private String dateformat;
@GetMapping("/now")
public String now(){
return LocalDate.now().format(
DateTimeFormatter.ofPattern(dateformat , Local.CHINA)
);
}
}
在/user/now的网址上观察是否可以正常地输出时间,并且格式与pattern一样。