Printemps avec Maven

Printemps avec Maven

1. Vue d'ensemble

Ce didacticiel illustre comment configurerthe Spring dependencies via Maven. Les dernières versions de Spring peuvent être trouvéeson Maven Central.

2. Dépendances de base de Spring avec Maven

Le ressort est conçu pour être très modulaire - en utilisant une partie de Spring ne devrait pas et ne nécessite pas une autre. Par exemple, le contexte Spring de base peut être sans les bibliothèques Persistence ou MVC Spring.

Commençons par unMaven setup fondamental qui n'utilisera quethe spring-context dependency:


    3.2.8.RELEASE
    


    org.springframework
    spring-context
    ${org.springframework.version}
    runtime

Cette dépendance -spring-context - définit le conteneur d'injection de ressort réel et a un petit nombre de dépendances:spring-core,spring-expression,spring-aop etspring-beans. Celles-ci augmentent le conteneur en permettant la prise en charge de certains descore Spring technologies: les utilitaires Core Spring, lesSpring Expression Language (SpEL), le supportAspect Oriented Programming et lesJavaBeans mechanism.

Notez que nous définissons la dépendance dans lesruntime scope - cela garantira qu'il n'y a aucune dépendance au moment de la compilation sur les API spécifiques à Spring. Pour des cas d'utilisation plus avancés, la portée deruntime peut être supprimée de certaines dépendances Spring sélectionnées, mais pour les projets plus simples, il y ano need to compile against Spring pour utiliser pleinement le framework.

Notez également qu'à partir de Spring 3.2,there is no need to define the CGLIB dependency (maintenant mis à niveau vers CGLIB 3.0) - il a été reconditionné (le package allnet.sf.cglib est maintenantorg.springframework.cglib) et intégré directement dans le spring-core JAR (voirthe JIRA pour plus de détails).

3. Spring Persistence avec Maven

Regardons maintenantthe persistence Spring dependencies - principalementspring-orm:


    org.springframework
    spring-orm
    ${org.springframework.version}

Cela vient avec le support Hibernate et JPA - commeHibernateTemplate etJpaTemplate - ainsi que quelques dépendances supplémentaires liées à la persistance:spring-jdbc etspring-tx.

La bibliothèque JDBC Data Access définit lesSpring JDBC support ainsi que lesJdbcTemplate, etspring-tx représente lesTransaction Management Abstraction extrêmement flexibles.

4. Spring MVC avec Maven

Pour utiliser le support Spring Web et Servlet, deux dépendances doivent être incluses dans lespom, à nouveau en plus des dépendances principales ci-dessus:


    org.springframework
    spring-web
    ${org.springframework.version}


    org.springframework
    spring-webmvc
    ${org.springframework.version}

La dépendancespring-web contient des utilitaires Web communs pour les environnements Servlet et Portlet, tandis quespring-webmvc enables the MVC support pour les environnements Servlet.

Puisquespring-webmvc aspring-web comme dépendance, la définition explicite despring-web n'est pas requise lors de l'utilisation despring-webmvc.

5. Sécurité de printemps avec Maven

LesSecurity Maven dependencies sont discutés en détail dans l'articleSpring Security with Maven.

6. Test de printemps avec Maven

Le Spring Test Framework peut être inclus dans le projet via la dépendance suivante:


    org.springframework
    spring-test
    ${spring.version}
    test

Depuis Spring 3.2, le projet Spring MVC Test a été inclus dans le Core Test Framework - et donc, il suffit d'inclure la dépendancespring-test.

7. Utilisation des jalons

La version finale de Spring est hébergée sur Maven Central. Cependant, si un projet doit utiliser des versions jalon, un référentiel Spring personnalisé doit être ajouté au pom:


    
        repository.springframework.maven.milestone
        Spring Framework Maven Milestone Repository
        http://repo.spring.io/milestone/
    

Une fois ce référentiel défini, le projet peut définir des dépendances telles que:


    org.springframework
    spring-core
    3.2.0.RC2

8. Utiliser des instantanés

Semblables aux jalons, les instantanés sont hébergés dans un référentiel personnalisé:


    
        repository.springframework.maven.snapshot
        Spring Framework Maven Snapshot Repository
        http://repo.spring.io/snapshot/
    

Une fois le référentiel SNAPSHOT activé dans le fichier pom.xml, les dépendances suivantes peuvent être référencées:


    org.springframework
    spring-core
    3.3.0.BUILD-SNAPSHOT

Ainsi que - pour 4.x:


    org.springframework
    spring-core
    4.0.3.BUILD-SNAPSHOT

9. Conclusion

Cet article décrit les détails pratiques de l'utilisation deSpring with Maven. Les dépendances Maven présentées ici sont bien sûr quelques-unes des principales, et plusieurs autres méritent d’être mentionnées et n’ont pas encore été retenues. Néanmoins, cela devrait être un bon point de départ pour utiliser Spring dans un projet.