spring web模块中,AbstractNamedValueMethodArgumentResolver中有这样一段代码,其中namedValueInfoCache是ConcurrentHashMap的实例。
private NamedValueInfo getNamedValueInfo(MethodParameter parameter) {
NamedValueInfo namedValueInfo = this.namedValueInfoCache.get(parameter);
if (namedValueInfo == null) {
namedValueInfo = createNamedValueInfo(parameter);
namedValueInfo = updateNamedValueInfo(parameter, namedValueInfo);
this.namedValueInfoCache.put(parameter, namedValueInfo);
}
return namedValueInfo;
}
我认为在并发场景这样的使用方式是线程不安全的,对于同一个key(parameter),可能会多次执行put操作。是否spring为保证性能,认为这种重复操作是没问题的?