Nacos读取配置到Map数据结构

首先贴上Nacos配置:

appblog:
  response:
    mapping:
      key1: Joe.Ye
      key2: www.appblog.cn
  risk:
    enable: false

可以看到配置里面一个maps集合,以下演示如何动态的去读取key1和key2的数据

类映射

@Data
@Component
@ConfigurationProperties(prefix = "appblog.response")
public class NacosConfig {

    //注意这里的maps要与yml里的配置名对应
    private Map<String, String> mapping;

    public String get(String key) {
        return mapping.get(key);
    }
}

示例使用代码:

@RestController
public class NacosController {

    @Autowired
    private NacosConfig config;

    @GetMapping("/getNacosValue")
    public String getNacosValue(String key) {
        return config.get(key);
    }
}

优点:配置简单
缺点:不支持多配置映射

方法映射

@Data
@Configuration
@RefreshScope
public class NacosConfig {

    @Value("${appblog.risk.enable}")
    private boolean enable;

    @Bean
    @ConfigurationProperties(prefix = "appblog.response.mapping")
    public Map<String, String> mapping() {
        // old key still exist when delete this key on nacos
        return new HashMap<>();
    }
}

示例使用代码:

@RestController
public class NacosController {

    @Autowired
    private NacosConfig config;

    @GetMapping("/getNacosValue")
    public String getNacosValue(String key) {
        return config.mapping().get(key);
    }
}

优点:支持多配置映射
缺点:配置稍微复杂

上一篇 Nacos配置实时生效测试
下一篇 RabbitMQ应用场景:订单自动过期取消
目录
文章列表
1 React Native学习之安装Nuclide与AlertIOS API
React Native学习之安装Nuclide与AlertIOS API
2
MySQL以字段进行分组并分页
MySQL以字段进行分组并分页
3
Groovy代码示例 - 如何为groovy脚本编译后的class文件指定名字?
Groovy代码示例 - 如何为groovy脚本编译后的class文件指定名字?
4
安装Kubernetes高可用
安装Kubernetes高可用
5
MySQL 及 SQL 注入
MySQL 及 SQL 注入
最新评论
一位WordPress评论者
一位WordPress评论者
2月12日
您好,这是一条评论。若需要审核、编辑或删除评论,请访问仪表盘的评论界面。评论者头像来自 Gravatar。