当前位置:首页 > 编程笔记 > 正文
已解决

java spring 动态获取nacos配置文件

来自网友在路上 172872提问 提问时间:2023-09-26 06:00:40阅读次数: 72

最佳答案 问答题库728位专家为你答疑解惑

1、jar依赖包
 <dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-context</artifactId><version>2.1.1.RELEASE</version></dependency><dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-nacos-     config</artifactId><version>2.2.1.RELEASE</version></dependency><dependency><groupId>com.fasterxml.jackson.dataformat</groupId><artifactId>jackson-dataformat-yaml</artifactId><version>2.9.9</version>
</dependency>
2、相关代码
package com.tanhua.sso.config;import com.alibaba.cloud.nacos.NacosConfigManager;
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.dataformat.yaml.YAMLFactory;
import lombok.SneakyThrows;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.cloud.context.config.annotation.RefreshScope;
import org.springframework.stereotype.Component;import java.util.HashMap;
import java.util.Map;@RefreshScope
@Component
public class NacosConfigService {private static final String ROUTE_CONFIG_ID = "bsc-auth- app. yml";private static final String GROUP_ID = "DEFAULT GROUP";@Autowiredprivate NacosConfigManager nacosconfigManager;@SneakyThrowspublic Map<String, String> getAuthAppInfo() {Map<String, String> map = new HashMap<>();//读取nacos配置文件String config = nacosconfigManager.getConfigService().getConfig(ROUTE_CONFIG_ID, GROUP_ID, 5000);//将获取到的yml配置文件转为JSON字符串JsonNode allNodes = new ObjectMapper(new YAMLFactory()).readTree(config);//将节点数据封装成所需要的格式,我需要map(此步骤省略)return map;}}

3、注意事项
1、注解@RefreshScope为动态刷新,如果需要检验是否成功。可以写一个Junit测试,while(true)循环打印获取到的信息。我们修改nacos配置文件,看测试打印的结果是否会动态修改。
2、获取的nacos配置文件包含所有指定yml里的数据(包括自定义),我们可以只选取需要的部分进行封装即可。

查看全文

99%的人还看了

猜你感兴趣

版权申明

本文"java spring 动态获取nacos配置文件":http://eshow365.cn/6-13715-0.html 内容来自互联网,请自行判断内容的正确性。如有侵权请联系我们,立即删除!