我有一个商店列表(getStore(..))s,它从DB获取所有商店
我想要做的是从属性文件中添加额外的存储。(尝试构建列表)
这是我的属性文件的样子
yard=1085:BELF:BELGRADE FIXTURES
yard=3238:SKWS:SKOKIE WAREHOUSE
yard=3239:PLDC:PLANO DC
yard=3339:HCDC:HOLIDAY CITY DC
这是我试图获取列表的方式。
@Value("#{'${yard}'.split(',')}#{T(java.util.Collections).emptyList()}")
private List<String> myList;
这里我是如何尝试将其他商店添加到列表中的
public List<Store> additionalYardList() {
List<Store> stores = storesApi.getStores();
for (String yard : myList) {
String[] yardArray = yard.split(":");
Store store = new Store();
store.setNumber(Integer.parseInt(yardArray[0]));
store.setAbbr(yardArray[1]);
store.setName(yardArray[2]);
LOG.debug(store.getAbbr());
stores.add(store);
}
return stores;
}
然后将进行Stream合并
public List<Store> getAllStores() {
return Stream.of(additionalYardList(), storesApi.getStores()).flatMap(List::stream).collect(Collectors.toList());
}
}
我的商店对象字段是:(number-abbr - name)
没有任何内容添加到该列表中,不知道我错过了什么?
重复的码密钥,请更正属性文件以获得唯一的密钥。
改变它
yard=1085:BELF:BELGRADE FIXTURES
yard=3238:SKWS:SKOKIE WAREHOUSE
yard=3239:PLDC:PLANO DC
yard=3339:HCDC:HOLIDAY CITY DC
至
yard=1085:BELF:BELGRADE FIXTURES,3238:SKWS:SKOKIE WAREHOUSE,3239:PLDC:PLANO DC,3339:HCDC:HOLIDAY CITY DC
然后你可以用下面的代码加载它们。
@Value("#{'${yard}'.split(',')}")
private List<String> myList;
这已经回答了here。