如何在Spring中将多个映射合并为一个映射

我在上下文文件中定义了几个映射。 有没有办法将这些映射组合成一个包含所有条目的映射,而无需编写Java代码(并且不使用嵌套映射)? 我正在寻找相当于Map m = new HashMap(); m.putAll(carMap); m.putAll(bikeMap); 看起来应该有一种方法可以在Spring上下文文件中执行此操作,但是util:map上的Spring 3.0参考文档部分未涵盖此用例。

       

在Spring中使用集合合并概念,可以逐步合并多个这样的bean。 我在我的项目中使用它来合并列表 ,但也可以扩展到合并地图。

例如

                 

第二个映射定义与第一个映射定义的关联是通过节点上的parent属性完成的,第一个映射中的条目使用

节点上的merge属性与第二个映射中的条目合并。

我敢打赌,Spring中没有对此function的直接支持。

但是,编写一个在Spring中使用的工厂bean并不困难(没有尝试编译)

 public class MapMerger  implements FactoryBean { private Map result = new HashMap(); @Override public Object getObject() { return result; } @Override public boolean isSingleton(){ return true; } @Override public Class getObjectType(){ return Map.class; } public void setSourceMaps(List> maps) { for (Map m : maps) { this.result.putAll(m); } } } 

在spring config中,只需执行以下操作: