【发布时间】:2018-06-15 19:17:50
【问题描述】:
我为类中的自动装配创建了一个 Map 对象的映射。地图的创建加载正常。但是,当我在类中自动装配地图时,键会更改为对象名称的小写值。我在创建 bean 之后打印密钥,密钥是我所期望的。然而,一旦它们被自动装配,键值就会变成别的东西。例如,要加载的对象是 org.bcn.sys.BasicDataobject,键变为 basicDataObject。很奇怪。有人可以告诉我发生了什么事吗?属性来自属性文件。例如,
dat1=org.bcn.sys.BasicDataobject变成basicData,key不是dat1而是basicDataobject之类的!!! 例如
@Bean
public Map<String,DataObject> dataObjects(){
Map<String,DataObject> m=new HashMap<String,DataObject>();
for(Map.EntrySet<String,String> e: e.entrySet()){
m.put(e.getKey(), loadDataObject(e.getValue());
}
//Prints keys correctly
LOG.info("m contains "+m)
}
@Component
@Import(AppConf.class)
class DataObjectProcessor{
@Autowired
private Map<String,DataObject> dataObjects;
// Keys are lower case names of the DataObjects!!!!
}
【问题讨论】:
标签: spring autowired spring-bean