Использование Spring 5.3 с сервлетом 3.0

#spring #spring-mvc #servlets

Вопрос:

Я работаю над приложением, которое использует Spring Core в версии 4.3.14 и Spring Web в версии 4.2.13. Мы не используем Spring MVC. Кроме того, из Spring Web мы используем только очень ограниченный набор классов:

  • XmlWebApplicationContext (поэтому классы из org.springframework.web.context)
  • RestTemplate (итак, классы из org.springframework.web.client, здесь я ожидаю некоторых проблем)
  • некоторые классы утилит, которые, вероятно, могут быть переработаны для использования чего-то другого

Мой вопрос: мы хотим перейти на Spring 5.x. Действительно ли такая миграция возможна? Или я должен ожидать некоторых серьезных проблем с запуском приложения (несовместимость классов и т. Д.). Этот источник, например: https://github.com/spring-projects/spring-framework/wiki/What’s-New-in-Spring-Framework-5.x#whats-new-in-version-50 говорит, что требуется Servlet 3.1

С другой стороны, здесь https://spring.io/blog/2015/06/10/feedback-welcome-spring-5-system-requirements ЮРГЕН ХЕЛЛЕР писал, что переход на весну 5 будет мягким. Поэтому я предполагаю, что если приложение использует только функции из JEE6 Servlet 3.0, то может случиться так, что оно также будет работать на Spring 5.x с JEE6-совместимым appserver

У кого-нибудь есть опыт в этом?

Ответ №1:

Как всегда, Spring Framework обновляет свою базовую версию новыми основными версиями. В этом случае нам требуются JDK8 и Java EE7 .

На практике это означает, что скомпилированный код зависит от этих API и больше не использует отражение для адаптации к ним. В вашем случае речь идет не только о сервлете, но также о JPA, JMS, проверке компонентов и других спецификациях.

Ваше приложение может нормально работать с указанным вами устройством, но команда Spring не гарантирует поддержку этой настройки.

Комментарии:

1. Я знаю другие зависимые фреймворки. Однако другие фреймворки не вызывают проблем на Wepshere 8.5. Есть только проблема с сервлетом 3.1. Спасибо за разъяснение