public V put(String key, V value) {
if (this.containsKey(key)) {
throw new IllegalArgumentException(this.name + " already contains value for " + key);
} else {
if (key.contains(".")) {
String shortKey = this.getShortName(key);
if (super.get(shortKey) == null) {
super.put(shortKey, value);
} else {
super.put(shortKey, new Configuration.StrictMap.Ambiguity(shortKey));
}
}
return super.put(key, value);
}
}
会抛出如下第3行异常
因为mybatis框架添加了一个StrictMap类,继承自HashMap,当put已经存在的key时,抛出异常。
从上面的过程中我们可以看到,在xml解析的key和方法注解解析出来的key是有可能重复的,如果重复了StrictMap的put方法就会 抛出异常