📘

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).

📌
https://spring.io/

Mise en place :

⚙
Outils : Récupérer gratuitement les binaires des JDK : https://adoptium.net/

Présentation des principaux modules


https://docs.spring.io/spring-framework/docs/4.3.x/spring-framework-reference/html/overview.html

Spring Boot

= configuration par défaut.
â„č
On ne fait quasiment plus que du Spring Boot maintenant.

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).

â„č
Il a Ă©tĂ© pensĂ© pour les micro-services —> c’est le futur.

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).

⚠
Le modĂšle MVC est un design pattern pour le front-end uniquement.

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.

â„č
Spring Data contient en fait JPA pour les bases de donnĂ©es relationnelles et propose d’autres projets pour les bases de donnĂ©es NoSQL.