Qual é a diferença entre as seguintes dependências?
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>3.1.2.RELEASE</version>
</dependency>
vs
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
<version>3.1.2.RELEASE</version>
</dependency>
Se eu incluir spring-webmvc
sozinho, então spring-web
será adicionado implicitamente.
Quando devemos usar spring-web
sozinhos?
spring
maven
spring-mvc
Mahendran
fonte
fonte
spring-webmvc
inturn adicionaspring-web
, mas digamos que se você tiver a versão spring-webmvc como 4.0.2, e você adicionar outra dependência, digamos,swagger-springmvc
versão 0.8.8, então ele adiciona aspring-web
versão 3.2.x. Nesse caso, você pode obter exceções de classe não encontrada. Portanto, aqui, você deve adicionar explicitamente umaspring-web
versão como 4.0.2. Eu encontrei isso hojespring-web
dependência transitiva emswagger-springmvc
Do documento oficial: O módulo spring-web fornece recursos básicos de integração orientados para a web, como a funcionalidade de upload de arquivo multipartes e a inicialização do contêiner IoC usando ouvintes Servlet e um contexto de aplicativo orientado para a web. Ele também contém um cliente HTTP e as partes relacionadas à web do suporte remoto do Spring.
O módulo spring-webmvc (também conhecido como módulo Web-Servlet) contém o model-view-controller (MVC) do Spring e implementação de REST Web Services para aplicativos da web. A estrutura MVC do Spring fornece uma separação clara entre o código do modelo de domínio e os formulários da web e se integra com todos os outros recursos do Spring Framework.
O módulo spring-webmvc-portlet (também conhecido como módulo Web-Portlet) fornece a implementação MVC a ser usada em um ambiente de Portlet e espelha a funcionalidade do módulo spring-webmvc baseado em Servlet.
https://docs.spring.io/spring/docs/4.3.22.RELEASE/spring-framework-reference/htmlsingle/#overview-web
fonte