目录
一、新增配置
二、配置的获取
三、配置自动刷新
3、实现配置的热更新
方式一:在controller上添加注解,并重启服务
方式二:使用configuration注解
四、多环境配置共享
五、多环境配置优先级
一、新增配置
配置创建成功
二、配置的获取
1、在userservice的pom文件添加如下依赖
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>
2、在resources文件夹下添加bootstarp.yml文件
spring:
application:
name: userservice
profiles:
active: dev #环境
cloud:
nacos:
server-addr: localhost:8848 #nacos地址
config:
file-extension: yaml #文件后缀名
3、注意检查服务是否在同一命名空间
4、在UserController中加入测试代码
@Value("${pattern.dataformat}")
private String dataformat;
@GetMapping("now")
public String now(){
return LocalDateTime.now().format(DateTimeFormatter.ofPattern(dataformat));
}
5、重启服务,并测试
三、配置自动刷新
1、修改配置
2、查看信息,发现没有变化(未实现热更新)
3、实现配置的热更新
方式一:在controller上添加注解,并重启服务
发现配置已经更新,但这并不能表示它是热更新,因为我重启了服务
我们修改配置并发布
刷新,可以看到我们没有重启服务也能更新配置了
方式二:使用configuration注解
(1)新建配置类并添加如下注解
@Data
@Component
@ConfigurationProperties(prefix = "pattern")
public class PatternProperties {
private String dataformat;
}
(2)修改controller类
@Autowired
private PatternProperties properties;
@GetMapping("now")
public String now(){
return LocalDateTime.now().format(DateTimeFormatter.ofPattern(properties.getDataformat()));
}
(3)重启服务,在nacos中修改发布配置并查看
(4)热更新成功
四、多环境配置共享
1、新建配置
2、在配置类中添加新变量
3、定义接口返回配置
4、添加新实例并将其纳入test区域
5、重启服务,观察返回值
可以看到未带区域属性的配置被共享使用了