如下图的请求参数,用户可以自定义“data”字段的内容,然后根据data的内容去配置文件中读取对应的结果,用户可以自己在配置文件中配置(nacos)

比如下面的请求,{"id":"10080sssssssss"}这一段就是map集合的key,我们拿着这个key去匹配value,如果我们还是用之前那种编写配置文件中的map集合与读取配置文件中的map集合是不可以的,因为我们现在map集合的key和value中添加逗号,双引号等

yaml文件内容:

从下面的代码很容易看出 userDefinedResult是一个map集合,只不过这个map集合的key和value都比我们之前见过的要复杂

比如,{"id":"10086","name":"zhangjingqi"},这一大段就是map集合的key

{"id":"1022222226","name":"zhangjingqi"},这一大段就是map集合的value

userdefinedyaml:
  path:
    userDefinedResult: {
      '[{"id":"10086","name":"zhangjingqi"}]': '{"id":"1022222226","name":"zhangjingqi"}',
      '[{"id":"10080","name":"ceshiyixia"}]':'{"des":"用户自定义"}',
      '[{"id":"10080"}]':'{"des":"用sssssssssss户自定义"}'
    }

配置文件

读取yaml文件的内容

@Data
@Component
@ConfigurationProperties(prefix = "userdefinedyaml.path")
public class UserDefineMapConfig {
    private HashMap<String, String> userDefinedResult;

}

测试类

    @Autowired
    ObjectMapper objectMapper ;   //转json工具
    @Autowired
    UserDefineMapConfig userDefineMapConfig;  //自定义读取配置文件的配置类

    @Test
    void contextLoads() throws JsonProcessingException {
        //从配置文件中获取用户自定义的map集合
        HashMap<String,String> hashMap = userDefineMapConfig.getUserDefinedResult();
        System.out.println(hashMap);
        // {"id":"10086","name":"zhangjingqi"}  模拟前端传输过来的data数据的json格式
        String key = "{\"id\":\"10086\",\"name\":\"zhangjingqi\"}";
        System.out.println(key);
        // 从集合中进行获取
        System.out.println(hashMap.get(key));

    }

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐