Spring Framework - Présentation

Spring est le framework de développement d'applications le plus populaire pour Java d'entreprise. Des millions de développeurs dans le monde utilisent Spring Framework pour créer du code hautement performant, facilement testable et réutilisable.

Spring Framework est une plate-forme Java open source. Il a été initialement écrit par Rod Johnson et a été publié pour la première fois sous la licence Apache 2.0 en juin 2003.

Le ressort est léger en termes de taille et de transparence. La version de base du framework Spring pèse environ 2 Mo.

Les fonctionnalités principales de Spring Framework peuvent être utilisées pour développer n'importe quelle application Java, mais il existe des extensions pour créer des applications Web sur la plate-forme Java EE. Le framework Spring vise à faciliter l'utilisation du développement J2EE et à promouvoir de bonnes pratiques de programmation en activant un modèle de programmation basé sur POJO.

Avantages de l'utilisation de Spring Framework

Voici la liste de quelques-uns des grands avantages de l'utilisation de Spring Framework -

  • Spring permet aux développeurs de développer des applications d'entreprise à l'aide de POJO. L'avantage d'utiliser uniquement des POJO est que vous n'avez pas besoin d'un produit de conteneur EJB tel qu'un serveur d'application, mais vous avez la possibilité d'utiliser uniquement un conteneur de servlet robuste tel que Tomcat ou un produit commercial.

  • Le printemps est organisé de manière modulaire. Même si le nombre de packages et de classes est important, vous devez vous soucier uniquement de ceux dont vous avez besoin et ignorer le reste.

  • Spring ne réinvente pas la roue, mais utilise véritablement certaines des technologies existantes telles que plusieurs frameworks ORM, frameworks de journalisation, minuteries JEE, Quartz et JDK, et d'autres technologies d'affichage.

  • Le test d'une application écrite avec Spring est simple car le code dépendant de l'environnement est déplacé dans ce cadre. De plus, en utilisant les POJO JavaBeanstyle, il devient plus facile d'utiliser l'injection de dépendances pour injecter des données de test.

  • Le framework Web de Spring est un framework Web MVC bien conçu, qui offre une excellente alternative aux frameworks Web tels que Struts ou d'autres frameworks Web sur-conçus ou moins populaires.

  • Spring fournit une API pratique pour traduire les exceptions spécifiques à la technologie (lancées par JDBC, Hibernate ou JDO, par exemple) en exceptions cohérentes et non contrôlées.

  • Les conteneurs IoC légers ont tendance à être légers, en particulier par rapport aux conteneurs EJB, par exemple. Cela est utile pour développer et déployer des applications sur des ordinateurs avec une mémoire et des ressources CPU limitées.

  • Spring fournit une interface de gestion des transactions cohérente qui peut passer à une transaction locale (à l'aide d'une seule base de données, par exemple) et évoluer vers des transactions globales (à l'aide de JTA, par exemple).

Injection de dépendance (DI)

La technologie avec laquelle Spring est le plus identifié est la Dependency Injection (DI)saveur d'inversion de contrôle. leInversion of Control (IoC)est un concept général et il peut être exprimé de différentes manières. L'injection de dépendances n'est qu'un exemple concret d'inversion de contrôle.

Lors de l'écriture d'une application Java complexe, les classes d'application doivent être aussi indépendantes que possible des autres classes Java pour augmenter la possibilité de réutiliser ces classes et de les tester indépendamment des autres classes lors des tests unitaires. L'injection de dépendance aide à coller ces classes ensemble et en même temps à les maintenir indépendantes.

Qu'est-ce que l'injection de dépendances exactement? Regardons ces deux mots séparément. Ici, la partie dépendance se traduit par une association entre deux classes. Par exemple, la classe A dépend de la classe B. Maintenant, regardons la deuxième partie, l'injection. Tout cela signifie que la classe B sera injectée dans la classe A par l'IoC.

L'injection de dépendances peut se produire lors de la transmission de paramètres au constructeur ou par post-construction à l'aide de méthodes setter. L'injection de dépendances étant au cœur de Spring Framework, nous expliquerons ce concept dans un chapitre séparé avec un exemple pertinent.

Programmation orientée aspect (AOP)

L'un des éléments clés du printemps est le Aspect Oriented Programming (AOP)cadre. Les fonctions qui s'étendent sur plusieurs points d'une application sont appeléescross-cutting concernset ces préoccupations transversales sont conceptuellement distinctes de la logique métier de l'application. Il existe divers bons exemples communs d'aspects, notamment la journalisation, les transactions déclaratives, la sécurité, la mise en cache, etc.

L'unité clé de la modularité dans la POO est la classe, tandis que dans l'AOP l'unité de la modularité est l'aspect. DI vous aide à découpler vos objets d'application les uns des autres, tandis que AOP vous aide à dissocier les préoccupations transversales des objets qu'elles affectent.

Le module AOP de Spring Framework fournit une implémentation de programmation orientée aspect vous permettant de définir des intercepteurs de méthode et des pointcuts pour découpler proprement le code qui implémente des fonctionnalités qui doivent être séparées. Nous discuterons plus en détail des concepts de Spring AOP dans un chapitre séparé.