Spring注入Map类型获取YAML中一个Key多个Value
在Java中使用Spring注入Map类型的方式获取一个key多个value的情况,可以使用@Qualifier注解和@Autowired注解配合使用。\n\n假设在application.yml中有如下配置:\n\nyaml\nmyMap:\n key1: value1,value2,value3\n key2: value4,value5,value6\n\n\n首先,在你的Spring配置类中,使用@ConfigurationProperties注解将myMap配置映射到一个Java对象上:\n\njava\n@Configuration\n@ConfigurationProperties("myMap")\npublic class MyMapProperties {\n private Map<String, List<String>> myMap;\n\n public Map<String, List<String>> getMyMap() {\n return myMap;\n }\n\n public void setMyMap(Map<String, List<String>> myMap) {\n this.myMap = myMap;\n }\n}\n\n\n然后,在需要使用这个Map的地方,使用@Autowired注解和@Qualifier注解来注入这个Map:\n\njava\n@Service\npublic class MyService {\n @Autowired\n @Qualifier("myMap")\n private Map<String, List<String>> myMap;\n\n // ...\n}\n\n\n现在,你可以在MyService类中使用myMap来获取配置文件中的键值对了。\n\n注意,@Qualifier注解中的参数是映射的配置文件中的键名,而不是Java对象中的字段名。并且,配置文件中的多个value会被解析为一个List。如果你的value是逗号分隔的字符串,可以使用StringUtils.split方法将其分割为List。
原文地址: https://www.cveoy.top/t/topic/pwxw 著作权归作者所有。请勿转载和采集!