第二天 b:
配置自动刷新(热刷新):
情况:当我们在nacos中,对于配置进行修改时,此时在网页上的格式并没有立刻发生改变,所有我们需要通过热刷新来解决这个问题。
要让微服务在nacos的配置文件发现改变后,微服务可以无需重启就可以感知。不过这里有两种方法可以进行改变。
一,方法一:
在添加了@Value注入的变量所在类上加入@RefreshScope
@RestController
@RequestMapping("/user")
@RefreshScope
public class UserController{
@Value("${pattern.dateformat}")
private String dateformat;
这个@RefreshScope就是用来进行刷新的注解。
二,方法二:
使用@ConfigurationProperties(prefix = "pattern")
@ConfigurationProperties(perfix = "pattern")
@Component
@Bean
public class PatternProperty{
private String dateformat;
}
这里的pattern.dateformat要与nacos中的配置相同,同时要加入@Component来使它成为服务的一部分。
多环境配置共享:
当我们启动一个项目时,它肯定会从nacos中读取多个配置文件:
比如:
[spring.application.name]-[spring.profile.active].yaml,例如:userService-dev.yml
[spring.application.name].yaml,例如:userService.yml
所以无论profile怎么改,[spring.application.name]它都是要用到的,因此在多环境配置中要加入它。
在nacos中注入多环境的配置。(它属于默认环境)
测试:
如何进行测试呢?
我们需要进行对于在另外环境的服务端口进行测试,这里我们可以不对yml文件进行修改,我们可以在新建的服务端接口进行修改 。
点击修改配置。
修改完之后,就可以看到是否能够,在其中看到里面的配置的内容。
优先级顺序:
根据上面的图,我们知道了他们的优先级顺序,服务名-profile>服务名称(多环境配置)>本地配置。