赞
踩
如何在nacos中管理配置呢
<!--nacos配置管理依赖-->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>
<!-- 引导文件支持 -->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-bootstrap</artifactId>
</dependency>
在指定测试的服务中的resource目录添加一个bootstrap.yaml文件,这个文件是引导文件,优先级高
于application.yaml:
#${spring.application.name}-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension}
spring:
application:
name: order #注册的服务名
cloud:
#Nacos
nacos:
username: nacos #nacos账号
password: nacos #nacos密码
config:
prefix: ss #nacos配置的名字
server-addr: 127.0.0.1:8848 #nacos的地址
#namespace:
file-extension: yaml #格式
在controller中做测试:
@RestController
@RequestMapping("/order")
@Log4j2
public class OrderController {
@Value("${student}")
private String student;
@Value("${name}")
private String name;
@GetMapping("/show")
public void show(){
System.out.println("student= " + student);
log.warn("name: {}", name);
}
}
结果:
我们最终的目的,是修改nacos中的配置后,微服务中无需重启即可让配置生效,也就是配置热更新。
在@Value注入的变量所在类上添加注解@RefreshScope:
@RestController
@RequestMapping("/order")
@RefreshScope
@Log4j2
public class OrderController {
修改nacos上的配置文件后不需要重启服务,重新访问,即可
添加一个环境共享配置
在测试服务中读取共享配置:
@RestController
@RequestMapping("/order")
@RefreshScope
@Log4j2
public class OrderController {
@Value("${name}")
private String name;
@GetMapping("/show")
public void show(){
log.warn("name: {}", name);
}
}
运行:
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。