如何使用@Values
注解,无需在 applicationContext.xml 中定义任何内容或任何其他 XML 文件。
我使用的是 spring boot,它没有anyXML 文件,我也不想要任何 XML 文件,所以请不要告诉我在 XML 等中声明任何属性读取器 bean。
另外,这是一个属性注入问题 - 请不要建议使用数据库来存储数据 - 这不是答案,而且对于我的情况来说无论如何都是不可能的。
另外,我也无法使用 YAML(由于部署/操作要求)。
我尝试声明此注入:
@Value("${myprop}")
Map<Integer, String> map;
和这个
@Value("${myprop.*}")
Map<Integer, String> map;
与这些条目application.properties
:
myprop.1=One
myprop.2=Two
myprop.3=Three
然后尝试
myprop[1]=One
myprop[2]=Two
myprop[3]=Three
但没有什么好处 - 只是爆炸
无法自动装配字段:...无法解析占位符“myprop”
我找到了一个解决方法,使用注入String[]
指定为key1:value1,key2:value2,...
然后我在代码中解析,但我不想这样做,因为a)它是更多的代码,b)列表会很长,并且一行上的所有对都将很难阅读和维护。
有没有办法从多个属性自动构建地图?
我不关心属性名称是什么、字段类型或注释是什么;我只是想为每个属性注入一个键/值对。