Я столкнулся с проблемой, когда хочу обновить Spring mvc с 2.5.3 до 4.x. В 2.5.3 класс org.springframework.web.multipart.support.DefaultMultipartHttpServletRequest имеет конструктор
"public DefaultMultipartHttpServletRequest(
HttpServletRequest request, Map multipartFiles, Map multipartParameters)".
Но в 4.2.9 конструктор изменился на
public DefaultMultipartHttpServletRequest(HttpServletRequest request, MultiValueMap<String, MultipartFile> mpFiles,
Map<String, String[]> mpParams, Map<String, String> mpParamContentTypes).
У меня есть настроенный MultipartHttpServletRequest, который расширяет "org.springframework.web.multipart.support.DefaultMultipartHttpServletRequest" в моем собственном модуле. если мы обновим версию до 4.x, мы должны изменить конструктор нашего собственного класса. Но я надеюсь, что этот настраиваемый класс будет доступен как для Spring 2, так и для Spring 4.x.
В классе DefaultMultipartHttpServletRequest есть еще один метод, который также имеет проблемы совместимости, например protected final void setMultipartFiles(Map multipartFiles).
Есть ли у кого-нибудь идеи по этому поводу?
Я хочу разработать единый модуль, который предоставляет настраиваемый MultipartHttpServletRequest для приложений с разными версиями Spring mvc. Помещение нескольких версий модулей Spring mvc в одно приложение может вызвать исключение времени выполнения (конфликт классов). У интерфейса MultipartHttpServletRequest также есть проблема совместимости. например, метод getFileMap в разных версиях Spring mvc имеет разный тип возвращаемого значения.




Вам потребуется несколько версий или не расширяйте этот класс, а вместо этого реализуйте интерфейс
MultipartHttpServletRequest(и, возможно, вместо этого расширьтеAbstractMultipartHttpServletRequest).