我有一个properties文件,其中的值是逗号分隔的。我能够得到Object的值,如下所示。有谁能告诉我如何把这些值分开,然后用字符串表示吗?
.properties
key-1 = value1,value11
key-2 = value2,value22
key-3 = value3,value33
key-4 = value4,value44码
@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));
}发布于 2019-03-15 09:40:02
你可以试试下面这样的方法。
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.
}发布于 2019-03-15 09:38:51
您可以使用@Value注释和@PropertySource来获取属性值。此外,还可以使用Spring表达式将其拆分为列表,例如:
@PropertySource( value = "classpath:test1.properties", name = "test1" )
public class PropertyClass {
@Value("#{'${key-1}'.split(',')}")
private List<String> key1Values;
}这将给出针对key-1配置的所有值的列表。
发布于 2019-03-15 09:59:12
.properties
map.key[0] = value1,value11
map.key[1] = value2,value22
map.key[2] = value3,value33
map.key[3] = value4,value44码
@ConfigurationProperties(prefix="map")
public class YourConfig {
private List<String> keys = new ArrayList<String>();
public List<String> getKeys() {
return this.servers;
}
}或者你可以使用:
keys={key-1:'value1',key-1:'value2',....}码
@Value("#{${keys}}") private Map<String,String> keys;https://stackoverflow.com/questions/55179462
复制相似问题