nacos配置在代码中引用的方法讲解
1、在代码的模块服务中安装nacos 配置依赖
<dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId> </dependency>
2、在nacos配置中心中进行服务配置 注意不是模块名,是服务名称,即在bootstrap.yaml中配置的服务名称
3、在模块的bootstrap.yml文件中添加配置信息
# 注意前边是 spring cloud nacos config: server-addr: 127.0.0.1:8848 # 即服务发现的地址 # 如果不是public则需要再加一行指定具体的命名空间。
4、使用@Value(${})使用配置
@Value("${common.name}") private String common_name; @GetMapping(value = "/configs") public String getValue(){ return common_name; }
获取动态的配置信息
代码如下:
@Value("${common.name}") // 这种方法不能获取动态的配置信息 private String common_name; @Autowired private ConfigurableApplicationContext applicationContext; // 这种方式可以获取动态的配置信息 @GetMapping(value = "/configs") public String getValue(){ // return common_name; return applicationContext.getEnvironment().getProperty("common.name"); }
扩展配置
1、首先在nacos中配置两个拓展的配置文件 配置文件1
配置文件2
注意这两个文件的配置内容的变化 2、在bootstrap.yaml文件中添加如下配置
config: server-addr: 127.0.0.1:8848 file-extension: yaml # 原配置 或者说是主配置 group: DEFAULT_GROUP ext-config[0]: # 拓展配置1 data-id: ext-config-common01.yaml group: COMMON_GROUP refresh: true # 动态刷新 ext-config[1]: # 拓展配置2 data-id: ext-config-common02.yaml group: COMMON_GROUP refresh: true
3、代码引用:
@Autowired private ConfigurableApplicationContext applicationContext; @GetMapping(value = "/config") public String getValue(){ String name = applicationContext.getEnvironment().getProperty("common.name"); String addr = applicationContext.getEnvironment().getProperty("common.addr"); return name+addr; }
4、最终的输出结果:
5、对结果的总结:
5.1、如果主配置中配置的内容和拓展配置的内容重复则按主配置的配置
5.2、如果拓展配置中的内容和另一个拓展配置中的内容重复,则按下标大的配置作为最终的配置
到此这篇关于nacos配置在代码中如何引用的文章就介绍到这了,更多相关nacos配置代码引用内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!
赞 (0)