2012-11-23 14 views
66

Qual è la differenza tra le seguenti dipendenze?Maven dependency spring-web vs spring-webmvc

<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 includo spring-webmvc solo allora spring-web viene implicitamente aggiunto.

Quando utilizzare solo spring-web?

risposta

90

spring-web fornisce integrazione HTTP di base, inclusi alcuni utili filtri Servlet, Spring HTTP Invoker, infrastruttura da integrare con altri framework Web e tecnologie HTTP, ad es. Iuta, tela da imballaggio.

spring-webmvc è un'implementazione di Spring MVC. spring-webmvcdepends on su spring-web, includendo così in via transitoria aggiungere spring-web. Non è necessario aggiungere spring-web in modo esplicito.

È necessario dipendere solo da spring-web se non si utilizza Spring MVC ma si desidera sfruttare le altre tecnologie Web supportate da Spring.

+3

Accetto, +1. Ma caso raro: l'inclusione di 'spring-webmvc' inturn aggiunge' spring-web', ma se hai una versione di spring-webmvc come 4.0.2, e aggiungi un'altra dipendenza dì la versione di swagger-springmvc' di 0.8.8, quindi aggiunge la versione 'spring-web' di 3.2.x. In questo caso potresti ottenere delle eccezioni non trovate nella classe, quindi qui devi aggiungere esplicitamente 'spring-web' e versione come 4.0.2. L'ho incontrato oggi – spiderman

+2

@spiderman Escluderei la dipendenza transitiva 'spring-web' in' swagger-springmvc' – Roger

Problemi correlati