Le Framework Spring est l’un des frameworks Java EE les plus populaires. Dans cet article, nous apprendrons ce qui suit :
- Architecture du framework Spring
- Composants principaux de Spring
- Projets divers sous l’égide du framework Spring.
I looked at the Google Trends chart for Spring Framework, Servlet, JSP, and JSF. It’s clear that Spring is far ahead from all other Java EE technologies.

Qu’est-ce que le Framework Spring ?
Spring est l’un des frameworks les plus populaires pour l’édition entreprise Java. Des développeurs du monde entier utilisent Spring pour développer des applications fiables et de haute qualité. Le framework Spring a été conçu par Rod Johnson. Depuis lors, Spring est devenu une technologie alternative dans le monde Java pour le modèle EJB. Vous pouvez créer différents types d’applications en utilisant le framework Spring.
Concepts de base de Spring – DI, IoC, AOP
- Il est impossible de comprendre ce qu’est le Framework Spring sans comprendre ce qu’est l’injection de dépendance et l’inversion de contrôle. L’injection de dépendance, également appelée DI, est l’un des types d’inversion de contrôle (IoC).
- Injection de dépendance – il s’agit du principe de la programmation orientée objet, dans lequel les objets du programme ne dépendent pas des implémentations concrètes d’autres objets, mais peuvent avoir connaissance de leurs abstractions (interfaces) pour une interaction ultérieure.
- Injection de Dépendance – est une composition de motifs de conception structurels, dans laquelle pour chaque fonction de l’application, il existe un objet (service) conditionnellement indépendant qui peut avoir besoin d’utiliser d’autres objets (dépendances) connus de lui par interfaces. Les dépendances sont transférées (implémentées) au service au moment de sa création. C’est une situation où nous introduisons un élément d’une classe dans une autre. En pratique, l’ID est implémentée en passant des paramètres au constructeur ou en utilisant des setters. Les bibliothèques qui implémentent cette approche sont également appelées conteneurs IoC.
- Programmation orientée aspect – un paradigme de programmation qui permet de distinguer la fonctionnalité traversante (fonctionnelle) dans l’application. Ces fonctions, qui traversent plusieurs nœuds de l’application, sont appelées préoccupations traversantes et ces notes traversantes sont séparées de la logique métier immédiate de l’application. En POO, l’unité clé est la classe, tandis qu’en AOP, l’élément clé est l’aspect. L’ID aide à séparer les classes d’application en modules distincts, et l’AOP aide à séparer les préoccupations traversantes des objets qu’elles affectent.
Architecture du Framework Spring
Le Framework Spring est divisé en plusieurs modules distincts, ce qui vous permet de décider lesquels utiliser dans votre application. L’image ci-dessous illustre les modules les plus importants de l’architecture du Framework Spring. Examions les modules de l’écosystème Spring un par un.
Composants principaux du Framework Spring
Le conteneur principal de Spring se compose de quatre modules : SpEL, Context, Core, Beans. La description de ces éléments est la suivante :
- Le module SpEL fournit un langage d’expression puissant pour manipuler les objets lors de l’exécution.
- Le Contexte est construit sur la base de Beans et Core et vous permet d’accéder à tout objet défini dans les paramètres. L’élément clé du module Contexte est l’interface ApplicationContext.
- Le module Core fournit les parties clés du framework, notamment les propriétés IoC et DI.
- Le module Bean est responsable de la création et de la gestion des Beans Spring – c’est l’unité de structure du contexte d’application.
Spring Framework Web
La couche Web du framework Spring se compose de Web, Web-MVC, Web-Socket, Web-Portlet, etc.
- Le module Web fournit des fonctions telles que le téléchargement de fichiers, la création d’applications Web, les services Web REST, etc.
- Web-MVC contient une implémentation de Spring MVC pour les applications Web.
- Web-Socket fournit un support pour la communication entre le client et le serveur, en utilisant les WebSockets dans les applications Web.
- Web-Portlet fournit une implémentation MVC dans un environnement de portlet.
Spring Framework Data Access
Le conteneur d’accès/ d’intégration de données se compose de JDBC, ORM, OXM, JMS et du module Transactions.
- JDBC fournit une couche abstraite de JDBC et élimine le besoin pour le développeur d’enregistrer manuellement le code monotone associé à la connexion à la base de données.
- Spring ORM fournit une intégration avec des ORM populaires tels que Hibernate, JDO, qui sont des implémentations de JPA.
- Le module OXM est responsable de la liaison entre l’objet / XML – XMLBeans, JAXB, etc.
- Le module JMS (Java Messaging Service) est responsable de la création, de l’envoi et de la réception des messages.
- Les transactions prennent en charge la gestion des transactions pour les classes qui implémentent certaines méthodes et les POJOs.
Modules divers
Spring comprend également plusieurs autres modules importants, tels que AOP, Aspects, Instrumentation, Messaging et Test.
- AOP met en œuvre la programmation orientée aspect et permet d’utiliser tout l’arsenal des capacités de l’AOP.
- Le module Aspects fournit une intégration avec AspectJ, qui est également un puissant framework AOP.
- L’instrumentation est responsable de la prise en charge de l’instrumentation des classes et du chargeur de classes, utilisés dans les applications serveur.
- Le module Messaging fournit une prise en charge de STOMP.
- Enfin, le module Test permet les tests à l’aide de TestNG ou du framework JUnit.
Fonctionnalités de Spring 5
Spring 5 a apporté une mise à jour massive par rapport à Spring 4. Certaines des fonctionnalités importantes de Spring 5 sont :
- Prise en charge de Java 8, Java 9, Java EE 7, Java EE 8, Servlet 4.0, Bean Validation 2.0 et JPA 2.2. Je suis heureux de voir que Spring essaie de rattraper les dernières versions des principales technologies utilisées.
- Amélioration du journalisation avec le nouveau module – spring-jcl.
- Les opérations de fichier utilisent des flux NIO 2, d’où une amélioration des performances.
- Prise en charge de Reactor 3.1 Flux et Mono ainsi que de RxJava 1.3 et 2.1 en tant que valeurs de retour des méthodes de contrôleur Spring MVC.
- Prise en charge de Kotlin, Project Lombok, JSON Binding API en tant qu’alternative à Jackson et GSON.
- Spring WebFlux – Spring devient réactif.
- Prise en charge de JUnit 5
- Prise en charge de la programmation fonctionnelle via Kotlin.
Vous pouvez consulter les projets Spring sur notre référentiel GitHub .
Références: Site Web officiel de Spring , Documentation de référence de Spring
Source:
https://www.digitalocean.com/community/tutorials/spring-framework