Recherche de site Web

Framework Spring


Le framework Spring est l'un des frameworks Java EE les plus populaires. Dans cet article, nous apprendrons les éléments suivants :

  • Architecture du framework Spring
  • Composants principaux de Spring
  • Divers projets sous l'égide du framework Spring.

J'ai regardé le graphique Google Trends pour Spring Framework, Servlet, JSP et JSF. Il est clair que Spring est bien en avance sur toutes les autres technologies Java EE.

Framework Spring - Tendances Google

Qu'est-ce que le Spring Framework ?

Spring est l'un des frameworks les plus populaires pour Java Enterprise Edition. 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, 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 Spring Framework sans comprendre ce qu'est l'injection de dépendances et l'inversion de contrôle. L'injection de dépendances, également appelée DI, est l'un des types d'inversion de contrôle (IoC).
  • Inversion de contrôle - c'est le 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 des connaissances sur leurs abstractions (interfaces) pour une interaction ultérieure.
  • Injection de dépendances - est une composition de modèles de conception structurels, dans laquelle pour chaque fonction de l'application, il existe un objet, conditionnellement indépendant (service), qui peut avoir besoin d'utiliser d'autres objets (dépendances) connus de lui par des 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 mise en œuvre en passant des paramètres au constructeur ou en utilisant des setters. Les bibliothèques qui mettent en œuvre cette approche sont également appelées conteneurs IoC.
  • Programmation orientée aspect - un paradigme de programmation qui permet de distinguer la fonctionnalité transversale (fonctionnelle) dans une application. Ces fonctions, qui s'étendent sur plusieurs nœuds de l'application, sont appelées préoccupations transversales et ces nœuds transversaux sont séparés de la logique métier immédiate de l'application. En POO, l'unité clé est la classe, tandis qu'en POA, l'élément clé est l'aspect. L'ID aide à séparer les classes de l'application en modules distincts, et la POA aide à séparer les préoccupations transversales des objets qu'elles affectent.

Architecture du framework Spring

Le framework Spring est divisé en plusieurs modules séparés, 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.

Composants principaux du framework Spring

Le conteneur Core de Spring se compose de quatre modules : SpEL, Context, Core, Beans. La description de ces éléments est la suivante :

  1. Le module SpEL fournit un langage d'expression puissant pour manipuler des objets lors de l'exécution.
  2. 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 Context est l'interface ApplicationContext.
  3. Le module Core fournit les parties clés du framework, y compris les propriétés IoC et DI.
  4. Le module Bean est responsable de la création et de la gestion des Spring Beans - il s'agit d'une unité de structure du contexte d'application.

Framework Web Spring

La couche Web du framework Spring se compose de Web, Web-MVC, Web-Socket, Web-Portlet, etc.

  1. 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.
  2. Web-MVC contient une implémentation de Spring MVC pour les applications web.
  3. Web-Socket fournit un support pour la communication entre le client et le serveur, en utilisant les Web-Sockets dans les applications web.
  4. Web-Portlet fournit une implémentation MVC avec un environnement de portlet

Accès aux données avec le framework Spring

Le conteneur d'accès/intégration des données se compose de JDBC, ORM, OXM, JMS et du module Transactions.

  1. 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.
  2. Spring ORM fournit une intégration avec des ORM populaires tels que Hibernate, JDO, qui sont des implémentations de JPA.
  3. Le module OXM est responsable de la liaison de l'Objet/XML - XMLBeans, JAXB, etc.
  4. Le module JMS (Java Messaging Service) est responsable de la création, de l'envoi et de la réception des messages.
  5. Transactions prend en charge la gestion des transactions pour les classes qui implémentent certaines méthodes et POJO.

Modules divers

Spring comprend également un certain nombre d'autres modules importants, tels que AOP, Aspects, Instrumentation, Messagerie et Test.

  1. AOP met en œuvre la programmation orientée aspect et permet d'utiliser tout l'arsenal des capacités AOP.
  2. Le module Aspects fournit une intégration avec AspectJ, qui est également un puissant framework AOP.
  3. L'instrumentation est responsable du support de l'instrumentation des classes et du chargeur de classes, qui sont utilisés dans les applications serveur.
  4. Le module de messagerie fournit un support STOMP.
  5. Enfin, le module Test fournit des tests en utilisant TestNG ou le framework JUnit.

Fonctionnalités de Spring 5

Spring 5 a apporté une mise à jour massive à Spring 4. Certaines des fonctionnalités importantes de Spring 5 sont :

  1. Support pour 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.
  2. Journalisation améliorée avec le nouveau module - spring-jcl.
  3. Les opérations sur les fichiers utilisent les flux NIO 2, d'où une performance améliorée.
  4. Prise en charge de Reactor 3.1 Flux et Mono ainsi que RxJava 1.3 et 2.1 comme valeurs de retour des méthodes des contrôleurs Spring MVC.
  5. Support pour Kotlin, Project Lombok, API de liaison JSON comme alternative à Jackson et GSON.
  6. Spring WebFlux - Spring devient réactif.
  7. Support pour JUnit 5
  8. Support de la programmation fonctionnelle via Kotlin.

Vous pouvez consulter les projets Spring sur notre dépôt GitHub.

Références : Site officiel de Spring, Documentation de référence de Spring