首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >从属性文件中读取列表,并使用spring注解@Value加载

从属性文件中读取列表,并使用spring注解@Value加载
EN

Stack Overflow用户
提问于 2012-09-25 12:19:00
回答 13查看 369.8K关注 0票数 293

我希望在.properties文件中有一个值列表,即:

代码语言:javascript
复制
my.list.of.strings=ABC,CDE,EFG

并将其直接加载到我的类中,即:

代码语言:javascript
复制
@Value("${my.list.of.strings}")
private List<String> myList;

据我所知,这样做的另一种选择是将它放在spring配置文件中,并将其作为bean引用加载(如果我错了,请纠正我),即

代码语言:javascript
复制
<bean name="list">
 <list>
  <value>ABC</value>
  <value>CDE</value>
  <value>EFG</value>
 </list>
</bean>

但是有没有办法做到这一点呢?使用.properties文件?ps:如果可能的话,我想在没有任何自定义代码的情况下这样做。

EN

回答 13

Stack Overflow用户

回答已采纳

发布于 2012-09-25 17:41:10

使用Spring EL:

代码语言:javascript
复制
@Value("#{'${my.list.of.strings}'.split(',')}") 
private List<String> myList;

假设您的属性文件已正确加载,并具有以下内容:

代码语言:javascript
复制
my.list.of.strings=ABC,CDE,EFG
票数 554
EN

Stack Overflow用户

发布于 2012-09-25 12:57:15

通过在.properties文件中指定my.list.of.strings=ABC,CDE,EFG并使用

@Value("${my.list.of.strings}") private String[] myString;

您可以获取字符串数组。使用CollectionUtils.addAll(myList, myString),您可以获得字符串列表。

票数 40
EN

Stack Overflow用户

发布于 2018-12-06 02:53:59

如果您使用的是Spring Boot 2,它将按原样工作,不需要任何额外的配置。

代码语言:javascript
复制
my.list.of.strings=ABC,CDE,EFG

@Value("${my.list.of.strings}")
private List<String> myList;
票数 28
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12576156

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档