想要通过@Value直接注入map/list,不用String再转成对应的实体。此处按照apollo配置(默认值)为例。
#Map
@Value("#{${category.letter.text.titles:{29:'左脚,右脚',0:'刻字内容'}}}")
private Map<Long, List<String>> letterTextTitles;
#List
@Value("#{'${list:{左脚,右脚}}}'.split(',')}")
private List<String> list;
注意:ymal文件配置,map解析中,一定要用"“把map所对应的value包起来,要不然解析会失败,导致不能转成 Map<String,String>
因为yaml语法中如果一个值以 “{” 开头, YAML 将认为它是一个字典, 所以我们必须引用它必须用”"
本文介绍了如何在Java中利用Apollo配置框架,直接通过@Value注解注入Map<Long, List<String>>和List<String>,避免了字符串转换的步骤。特别提到在YAML配置文件中,为防止被解析为字典,需使用引号包裹Map的值。示例代码展示了具体的注入方式。
864

被折叠的 条评论
为什么被折叠?



