我相信 只能将占位符与字符串属性一起使用 。这给您两个选择:
- 重复这些值;
- 或 将地图定义为属性字符串 。
解决方案-将地图定义为键值的逗号分隔字符串
如果您单击上面的链接,将提供完整的说明。我会引导您完成。
(1)application.yml:
prop1: A:FLT, B:123, C...prop2: ${prop1}(2)定义一个String toMap转换器/拆分器
@Component("PropertySplitter")public class PropertySplitter { public Map<String, String> map(String property) { return this.map(property, ","); } private Map<String, String> map(String property, String splitter) { return Splitter.on(splitter).omitEmptyStrings().trimResults().withKeyValueSeparator(":").split(property); }}(3)使用@Value和分割器注入地图:
@Value("#{PropertySplitter.map('${prop1}')}")Map<String, String> prop1;@Value("#{PropertySplitter.map('${prop2}')}")Map<String, String> prop2;


