
Introduction Ă Spring
Framework Java, open source et léger.
Spring est un framework simple qui facilite lâintĂ©gration dâautres frameworks (metaframework ou framework de frameworks).
Il sert notamment Ă simplifier le dĂ©veloppement dâapplication JavaEE, lâutilisation des Designs Patterns, lâintĂ©gration des librairies et frameworks.
Il est pensĂ© pour la testabilitĂ© et sur le principe de âconvention over configurationâ.
Il permet dâutiliser Hibernate et les API de logging (Apache Commons Logging / Logback).
Mise en place :
- IntelliJ Ultimate à télécharger et installer (ou Eclipse) : https://www.jetbrains.com/idea/
- JDK LTS 11 à télécharger (pour le cours)
Présentation des principaux modules

Spring Boot
= configuration par défaut.
Il fournit un squelette dâapplication fonctionnel et des starters (ensembles de dĂ©pendances par problĂ©matique comme le Web).
Il permet dâintĂ©grer des gestionnaires de dĂ©pendances comme Maven ou Gradle.
Il embarque des serveurs HTTP (comme Tomcat).
Il permet de déployer des applications : standolone (jar) et classiques (war).
Spring Core
= noyau de Spring qui fournit des conteneurs, il va notamment gérer les objets pour nous.
Il fournit un conteneur dans lequel lâapplication va ĂȘtre pilotĂ©e.
Il offre des mĂ©canismes dâinstanciation et dâinitialisation des dĂ©pendances entre classes.
Il est basé sur les POJOs (plain old java object).
Il permet le couplage faible entre les couches applicatives.
Il peut ĂȘtre configurĂ© en XML (obsolĂšte), avec des annotations ou par programmation.
Spring AOP
= programmation orientée aspects ou Aspect Oriented Programming (= interceptions).
Il offre un modĂšle simplifiĂ© basĂ© sur les interfaces dĂ©finies par lâAOP : composante forte de Spring qui permet de mettre en Ćuvre des services techniques de façon dĂ©clarative (transaction, sĂ©curitĂ©, performance).
Il permet le développement de ses propres aspects.
Il supporte les annotations Java.
Spring Web
= applications web.
Il fournit une implémentation MVC (modÚle, vue, contrÎleur).
Il facilite la rĂ©alisation dâapplications web : monolithiques (classiques) ou orientĂ©es service.
Il permet la validation des données (via les formulaires, par exemple).
Spring ORM et Spring Data JPA
= communication avec les bases de données.
Une des solutions Spring pour la gestion de la couche dâaccĂšs aux donnĂ©es est Spring Data JPA, qui supporte la norme JPA. Une alternative est Spring JDBC.
Il propose une couche dâabstraction supplĂ©mentaire qui simplifie lâimplĂ©mentation des DAO grĂące au composant Repository.