Movatterモバイル変換


[0]ホーム

URL:


Aller au contenu
Wikipédial'encyclopédie libre
Rechercher

Spring (framework)

Un article de Wikipédia, l'encyclopédie libre.
Page d’aide sur l’homonymie

Pour les articles homonymes, voirSpring.

Spring Framework
Description de l'image Spring_Framework_Logo_2018.svg.

Informations
Développé parVMwareVoir et modifier les données sur Wikidata
Première version[1]
Dernière version7.0.0 ()[2]Voir et modifier les données sur Wikidata
Dépôtgithub.com/spring-projects/spring-frameworkVoir et modifier les données sur Wikidata
Écrit enJava,Kotlin etGroovyVoir et modifier les données sur Wikidata
Système d'exploitationMultiplateforme(d)Voir et modifier les données sur Wikidata
EnvironnementMultiplate-forme
TypeFramework web
Framework
Bibliothèque Java(d)Voir et modifier les données sur Wikidata
LicenceLicence Apache 2.0Voir et modifier les données sur Wikidata
Site webspring.io/projects/spring-frameworkVoir et modifier les données sur Wikidata

modifier -modifier le code -voir Wikidata(aide)

Eninformatique,Spring est unframeworkopen source pour construire et définir l'infrastructure d'une applicationJava[3], dont il facilite ledéveloppement et les tests.

En 2004,Rod Johnson (en) a écrit le livreExpert One-on-One J2EE Design and Development[4] qui explique les raisons de la création de Spring.

Conteneur léger

[modifier |modifier le code]

Spring est considéré comme un conteneur dit « léger ». La raison de ce nommage est expliquée par Erik Gollot dans l’introduction du documentIntroduction au framework Spring[5].

« Spring est effectivement un conteneur dit « léger », c’est-à-dire une infrastructure similaire à unserveur d'applicationsJ2EE. Il prend donc en charge la création d’objets et la mise en relation d’objets par l’intermédiaire d’un fichier de configuration qui décrit les objets à fabriquer et les relations de dépendances entre ces objets. Le gros avantage par rapport aux serveurs d’application est qu’avec Spring, les classes n’ont pas besoin d’implémenter une quelconque interface pour être prises en charge par le framework (au contraire desserveurs d'applicationsJ2EE et desEJBs). C’est en ce sens que Spring est qualifié de conteneur « léger ». »

Spring s’appuie principalement sur l’intégration de trois concepts clés :

  1. L’inversion de contrôle est assurée de deux façons différentes : la recherche de dépendances et l'injection de dépendances ;
  2. Laprogrammation orientée aspect ;
  3. Une couche d’abstraction.

La couche d’abstraction permet d’intégrer d’autresframeworks etbibliothèques avec une plus grande facilité. Cela se fait par l’apport ou non de couches d’abstraction spécifiques à des frameworks particuliers. Il est ainsi possible d’intégrer un module d’envoi de mails plus facilement.

L’inversion de contrôle :

  1. La recherche de dépendance : consiste pour un objet à interroger le conteneur, afin de trouver ses dépendances avec les autres objets. C’est un cas de fonctionnement similaire aux EJBs ;
  2. L’injection de dépendances : cette injection peut être effectuée de trois manières possibles :
    • l’injection de dépendance via le constructeur,
    • l’injection de dépendance via les modificateurs (setters),
    • l’injection de dépendance via une interface.

Les deux premières sont les plus utilisées par Spring.

Ce framework, grâce à sa couche d’abstraction, ne concurrence pas d’autres frameworks dans une couche spécifique d’un modèle architecturalModèle-Vue-Contrôleur mais s’avère être un framework multi-couches pouvant s’insérer au niveau de toutes les couches ; modèle, vue et contrôleur. Ainsi il permet d’intégrerHibernate ouiBATIS pour la couche de persistance ou encoreStruts etJavaServer Faces pour la couche présentation.

Composition de Spring

[modifier |modifier le code]

Noyau de base

[modifier |modifier le code]

Le noyau de Spring est basé sur :

  • unefabrique générique de composants informatiques, composants nommésbeans (anglais deharicots, et dans le contexte Java de grain de café) ;
  • un conteneur capable de stocker ces beans.

De plus, le noyau de Spring permet de forcer le contrôle de ces composants de leur extérieur, par la technique nomméeinversion de contrôle.

Le principal avantage est de composer les beans de façon plus déclarative plutôt que de façon impérative dans le programme. Les beans peuvent être définis par le biais defichiers de configuration en Java ouXML.

Exemple d'utilisation

[modifier |modifier le code]

Dans l'exemple ci-dessous, deux beanssingletons sont définis. Le premier est unobjet d'accès aux données pour des produits et on l'injecte dans le second qui est un gestionnaire de produits.

@ConfigurationpublicclassAppConfig{@BeanpublicClientServiceclientService(ClientDaoclientDao){ClientServiceclientService=newClientServiceImpl();clientService.setClientDao(clientDao);returnclientService;}@BeanpublicClientDaoclientDao(){returnnewClientDaoImpl();}}

Par exemple, lors d'une recherche, on demandera au conteneur Spring de fournir le gestionnaire de produits qui utilisera l'objet d'accès aux données.

Compléments

[modifier |modifier le code]

Divers modules Spring Framework viennent en complément du noyau de base pour permettre l'intégration avec les autres bibliothèques et framework, notamment :

Notes et références

[modifier |modifier le code]
  1. https://src.springsource.org/svn/spring-maintenance/tags/release-1-0/changelog.txt
  2. spring-projects, « Release v7.0.0 · spring-projects/spring-framework »(consulté le)
  3. Documentation officielle, « Introduction to Spring Framework »
  4. Expert One-on-One J2EE Design and Development,Rod Johnson, Juergen Holler(ISBN 978-0-7645-4385-2)
  5. ego.developpez.com/spring

Voir aussi

[modifier |modifier le code]

Sur les autres projets Wikimedia :

Articles connexes

[modifier |modifier le code]

Bibliographie

[modifier |modifier le code]
  • Spring par la pratique par Julien Dubois, Jean-Philippe Retaillé, Thierry Templier,Eyrolles, 2006, 517 p.,(ISBN 2212117108)
  • Spring par l'exemple par Gary Mak, PEARSSON, 2008, 492 p.,(ISBN 2744023396)

Liens externes

[modifier |modifier le code]
v ·m
Python
PHP
Ruby
Perl
SmalltalkSeaside
JavaScript
Côté serveur
Côté client
CSS
Java
.NET
Ce document provient de « https://fr.wikipedia.org/w/index.php?title=Spring_(framework)&oldid=228920180 ».
Catégories :
Catégories cachées :

[8]ページ先頭

©2009-2026 Movatter.jp