Quelles dépendances à inclure dans le spring 3.0?

J’essaie de faire mon premier projet avec Spring 3.0 (et maven). J’ai utilisé Spring 2.5 (et les versions de base) dans de nombreux projets. Néanmoins, je suis un peu confus, quels modules je dois définir comme dépendances dans mon pom.xml. Je veux juste utiliser les fonctions de base du conteneur (beans, core, context, el).

J’avais l’habitude de faire ça:

 org.springframework spring 2.5.6  

Mais maintenant, je suis un peu confus, car il n’y a plus de module de spring complet pour la version 3.0. J’ai essayé ce qui suit mais cela n’a pas fonctionné (certaines classes sont manquantes).

   org.springframework spring-core 3.0.0.RELEASE   org.springframework spring-expression 3.0.0.RELEASE   org.springframework spring-beans 3.0.0.RELEASE   org.springframework spring-context 3.0.0.RELEASE  

Toute aide serait appréciée!

Keith Donald a publié un article très intéressant sur le thème du spring: comment obtenir des artefacts de spring 3 avec Maven , avec des commentaires détaillant le besoin de chacune des dépendances …

   3.0.0.RELEASE    org.springframework spring-core ${org.springframework.version}    org.springframework spring-expression ${org.springframework.version}    org.springframework spring-beans ${org.springframework.version}    org.springframework spring-aop ${org.springframework.version}    org.springframework spring-context ${org.springframework.version}    org.springframework spring-context-support ${org.springframework.version}    org.springframework spring-tx ${org.springframework.version}    org.springframework spring-jdbc ${org.springframework.version}    org.springframework spring-orm ${org.springframework.version}    org.springframework spring-oxm ${org.springframework.version}    org.springframework spring-web ${org.springframework.version}    org.springframework spring-webmvc ${org.springframework.version}    org.springframework spring-webmvc-portlet ${org.springframework.version}    org.springframework spring-test ${org.springframework.version} test  

Spring (de nos jours) facilite l’ajout de Spring à un projet en utilisant une seule dépendance, par exemple

  org.springframework spring-context 3.1.2.RELEASE  

Cela résoudra à

 [INFO] The following files have been resolved: [INFO] aopalliance:aopalliance:jar:1.0:comstack [INFO] commons-logging:commons-logging:jar:1.1.1:comstack [INFO] org.springframework:spring-aop:jar:3.1.2.RELEASE:comstack [INFO] org.springframework:spring-asm:jar:3.1.2.RELEASE:comstack [INFO] org.springframework:spring-beans:jar:3.1.2.RELEASE:comstack [INFO] org.springframework:spring-context:jar:3.1.2.RELEASE:comstack [INFO] org.springframework:spring-core:jar:3.1.2.RELEASE:comstack [INFO] org.springframework:spring-expression:jar:3.1.2.RELEASE:comstack 

Consultez la page de documentation de Spring Framework pour plus d’informations.

  org.springframework spring-webmvc 3.0.0.RELEASE  

Étant donné que cette question semble toujours avoir beaucoup de points de vue, il pourrait être utile de noter que pour Spring 4+, il est plus facile de commencer à utiliser Spring Boot et les POM de démarrage Spring Boot .

Avec Spring Boot, il y a moins de dépendances à gérer (et donc moins de conflits), et la mise en place d’un contexte de spring fonctionnel et bien intégré est beaucoup plus facile. Je le recommande fortement.

Quelles classes sont manquantes? Le nom de classe lui-même devrait être un bon indice du module manquant.

Pour ma part, je sais qu’il est très pratique d’inclure le uber spring jar, mais cela pose vraiment des problèmes lors de l’intégration à d’autres projets. L’un des avantages du système de dépendance est qu’il permettra de résoudre les conflits de version entre les dépendances.

Si ma bibliothèque dépend de Spring-core: 2.5 et que vous dépendez de ma bibliothèque et de votre uber-spring: 3.0, vous avez maintenant 2 versions de Spring sur votre classpath.

Vous pouvez contourner cela avec des exclusions, mais il est beaucoup plus facile de répertorier correctement les dépendances et de ne pas avoir à vous en soucier.

Vous pouvez essayer ceci

   org.springframework spring-core 3.1.0.RELEASE   org.springframework spring-web 3.1.0.RELEASE   org.springframework spring-webmvc 3.1.0.RELEASE  ` 

Vous pouvez append une dépendance de contexte de spring pour les jarres de spring. Vous obtiendrez les pots suivants avec elle.

  org.springframework spring-context 5.0.5.RELEASE  

Dépendances du contexte de printemps

Si vous souhaitez également des composants Web, vous pouvez utiliser la dépendance spring-webmvc .

  org.springframework spring-webmvc 5.0.5.RELEASE  

Dépendances webmvc du printemps

Vous pouvez utiliser la version de votre choix. J’ai utilisé 5.0.5.RELEASE ici.