首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Spring中加载和迭代属性文件

如何在Spring中加载和迭代属性文件
EN

Stack Overflow用户
提问于 2019-03-15 09:33:32
回答 3查看 5.6K关注 0票数 2

我有一个properties文件,其中的值是逗号分隔的。我能够得到Object的值,如下所示。有谁能告诉我如何把这些值分开,然后用字符串表示吗?

.properties

代码语言:javascript
复制
key-1 = value1,value11
key-2 = value2,value22
key-3 = value3,value33
key-4 = value4,value44

代码语言:javascript
复制
@PropertySource( value = "classpath:test1.properties", name = "test1" )

AbstractEnvironment ae = (AbstractEnvironment)env;
org.springframework.core.env.PropertySource test1Source = 
ae.getPropertySources().get("test1");
Properties propsTest1 = (Properties)test1Source.getSource();

   for(Object key : propsTest1.keySet()){
   System.out.println("Properties file======>   propsTest1.get(key));
  }
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2019-03-15 09:40:02

你可以试试下面这样的方法。

代码语言:javascript
复制
Properties propsTest1 = (Properties)test1Source.getSource();

for(Map.Entry<Object, Object> e : propsTest1.entrySet()){

   String value = (String)e.getValue();
   String[] values = value.split(",");
   // If you have spaces as between values, you have to take care of it.
}
票数 2
EN

Stack Overflow用户

发布于 2019-03-15 09:38:51

您可以使用@Value注释和@PropertySource来获取属性值。此外,还可以使用Spring表达式将其拆分为列表,例如:

代码语言:javascript
复制
@PropertySource( value = "classpath:test1.properties", name = "test1" )
public class PropertyClass {

    @Value("#{'${key-1}'.split(',')}") 
    private List<String> key1Values;
}

这将给出针对key-1配置的所有值的列表。

票数 3
EN

Stack Overflow用户

发布于 2019-03-15 09:59:12

.properties

代码语言:javascript
复制
map.key[0] = value1,value11
map.key[1] = value2,value22
map.key[2] = value3,value33
map.key[3] = value4,value44

代码语言:javascript
复制
@ConfigurationProperties(prefix="map")
public class YourConfig {

    private List<String> keys = new ArrayList<String>();

    public List<String> getKeys() {
        return this.servers;
    }
}

或者你可以使用:

代码语言:javascript
复制
keys={key-1:'value1',key-1:'value2',....}

代码语言:javascript
复制
@Value("#{${keys}}")  private Map<String,String> keys;
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55179462

复制
相关文章

相似问题

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