Зависимость от Maven spring -web vs spring -webmvc
В чем разница между следующими зависимостями?
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>3.1.2.RELEASE</version>
</dependency>
против
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
<version>3.1.2.RELEASE</version>
</dependency>
Если я spring-webmvc
только spring-webmvc
то spring-webmvc
spring-web
неявно добавляется.
Когда мы должны использовать spring-web
одиночку?
Ответы
Ответ 1
spring-web
обеспечивает базовую интеграцию HTTP, включая некоторые удобные фильтры сервлетов, Spring HTTP Invoker, инфраструктуру для интеграции с другими веб-инфраструктурами и технологиями HTTP, например. Гессиан, Бурлап.
spring-webmvc
представляет собой реализацию Spring MVC. spring-webmvc
зависит от на spring-web
, таким образом, он будет транзитивно добавлять spring-web
. Вам не нужно явно добавлять spring-web
.
Вы должны зависеть только от spring-web
, если вы не используете Spring MVC, но хотите воспользоваться другими технологиями, связанными с веб-интерфейсом, которые поддерживает Spring.
Ответ 2
Из официального документа: Spring-web модуль предоставляет базовые веб-ориентированные функции интеграции, такие как многокомпонентная загрузка файлов и инициализация контейнера IoC с использованием прослушивателей сервлетов и контекста веб-ориентированных приложений. Он также содержит HTTP-клиент и веб-части поддержки удаленного взаимодействия Springs.
Модуль spring-webmvc (также известный как модуль Web-сервлета) содержит реализацию модели-представления-контроллера (MVC) Springs и реализацию веб-служб REST для веб-приложений. Среда Springs MVC обеспечивает четкое разделение кода модели домена и веб-форм и интегрируется со всеми другими функциями Spring Framework.
Модуль spring-webmvc-portlet (также известный как модуль Web-портлета) предоставляет реализацию MVC для использования в среде портлетов и отражает функциональность модуля spring-webmvc на основе сервлета.
https://docs.spring.io/spring/docs/4.3.22.RELEASE/spring-framework-reference/htmlsingle/#overview-web