Technopedia Center
PMB University Brochure
Faculty of Engineering and Computer Science
S1 Informatics S1 Information Systems S1 Information Technology S1 Computer Engineering S1 Electrical Engineering S1 Civil Engineering

faculty of Economics and Business
S1 Management S1 Accountancy

Faculty of Letters and Educational Sciences
S1 English literature S1 English language education S1 Mathematics education S1 Sports Education
  • Registerasi
  • Brosur UTI
  • Kip Scholarship Information
  • Performance
  1. Weltenzyklopädie
  2. Spring (framework) — Wikipédia
Spring (framework) — Wikipédia 👆 Click Here! Read More..
Un article de Wikipédia, l'encyclopédie libre.
Page d’aide sur l’homonymie

Pour les articles homonymes, voir Spring.

Spring Framework
Description de l'image Spring_Framework_Logo_2018.svg.

Informations
Développé par VMwareVoir et modifier les données sur Wikidata
Première version 25 juin 2003[1]
Dernière version 7.0.0 (13 novembre 2025)[2]Voir et modifier les données sur Wikidata
Dépôt github.com/spring-projects/spring-frameworkVoir et modifier les données sur Wikidata
Écrit en Java, Kotlin et GroovyVoir et modifier les données sur Wikidata
Système d'exploitation Multiplateforme (d)Voir et modifier les données sur Wikidata
Environnement Multiplate-forme
Type Framework web
Framework
Bibliothèque Java (d)Voir et modifier les données sur Wikidata
Licence Licence Apache 2.0Voir et modifier les données sur Wikidata
Site web spring.io/projects/spring-frameworkVoir et modifier les données sur Wikidata

modifier - modifier le code - voir Wikidata (aide)

En informatique, Spring est un framework open source pour construire et définir l'infrastructure d'une application Java[3], dont il facilite le développement et les tests.

En 2004, Rod Johnson (en) a écrit le livre Expert 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 document Introduction au framework Spring[5].

« Spring est effectivement un conteneur dit « léger », c’est-à-dire une infrastructure similaire à un serveur d'applications J2EE. 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 des serveurs d'applications J2EE et des EJBs). 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. La programmation orientée aspect ;
  3. Une couche d’abstraction.

La couche d’abstraction permet d’intégrer d’autres frameworks et bibliothè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 architectural Modè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égrer Hibernate ou iBATIS pour la couche de persistance ou encore Struts et JavaServer 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 :

  • une fabrique générique de composants informatiques, composants nommés beans (anglais de haricots, 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ée inversion 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 de fichiers de configuration en Java ou XML.

Exemple d'utilisation

[modifier | modifier le code]

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

@Configuration
public class AppConfig {

    @Bean
    public ClientService clientService(ClientDao clientDao) {
        ClientService clientService = new ClientServiceImpl();
        clientService.setClientDao(clientDao);
        return clientService;
    }

    @Bean
    public ClientDao clientDao() {
        return new ClientDaoImpl();
    }
}

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 :

  • Accès et intégration des données pour l'intégration de JDBC, des ORM, de la sérialisation des données, de JMS et des transactions ;
  • AOP et instrumentation pour la programmation par aspects (AspectJ) ;
  • Web pour la réalisation d'applications web avec les technologies Servlet et websocket ;
  • Test pour l'intégration avec des frameworks de test comme JUnit ou TestNG.

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 19 novembre 2025)
  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 :

  • Spring (framework), sur Wikibooks

Articles connexes

[modifier | modifier le code]
  • Autres framework similaires
    • Google Guice
    • Apache HiveMind (uk)
  • JHipster

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]
  • (en) Site officiel du projet Spring
v · m
Frameworks web
Python
  • Django
  • Flask
  • Tornado (framework) (en)
  • Scrapy
  • Twisted
  • Web2py
  • CherryPy
  • Pyramid
  • TurboGears
PHP
  • Symfony
  • API Platform
  • Zend Framework
  • CodeIgniter
  • FuelPHP
  • Yii
  • CakePHP
  • QCodo
  • Laravel
  • Jelix
  • Agavi
  • Atomik
  • Copix
  • Kumbia PHP
  • PRADO
  • WebSite-PHP
  • Phalcon
Ruby
  • Ruby on Rails
  • Sinatra
  • Merb
Perl
  • Catalyst
  • Dancer
  • Mojolicious
Smalltalk Seaside
JavaScript
Côté serveur
  • Express.js
  • Meteor
Côté client
  • Angular
  • AngularJS
  • Backbone.js
  • Cappuccino
  • Dojo
  • Ember.js
  • Ext JS
  • Meteor
  • MooTools
  • Prototype
  • qooxdoo
  • React
  • script.aculo.us
  • YUI
  • Vue.js
  • Svelte
CSS
  • Blueprint
  • Frameworks d'interface
    • Bootstrap
    • Foundation
Java
  • Jakarta EE
  • Spring
  • Struts
  • Tapestry
  • Play
  • Stripes
  • ZK
  • Cocoon
  • GWT
  • Echo
  • AppFuse
  • Grails
  • RAP
  • Wicket
  • WebObjects
  • Vert.x
  • Quarkus
.NET
  • ASP.NET
  • ASP.NET AJAX
  • icône décorative Portail des logiciels libres
Ce document provient de « https://fr.teknopedia.teknokrat.ac.id/w/index.php?title=Spring_(framework)&oldid=228920180 ».
Catégories :
  • Logiciel écrit en Java
  • Logiciel écrit en Kotlin
  • Framework de programmation
  • Bibliothèque logicielle Java
  • Logiciel libre sous licence Apache
Catégories cachées :
  • Page utilisant P178
  • Page utilisant P348
  • Page utilisant P1324
  • Page utilisant P277
  • Logiciel écrit en un langage sans catégorie associée
  • Logiciel catégorisé automatiquement par langage d'écriture
  • Page utilisant P306
  • Page utilisant P31
  • Page utilisant P275
  • Page utilisant P856
  • Article utilisant une Infobox
  • Article contenant un appel à traduction en anglais
  • Article contenant un appel à traduction en ukrainien
  • Portail:Logiciels libres/Articles liés
  • Portail:Logiciel/Articles liés
  • Portail:Informatique/Articles liés

  • indonesia
  • Polski
  • الرية
  • Deutsch
  • English
  • Español
  • Français
  • Italiano
  • مصر
  • Nederlands
  • 本語
  • Português
  • Sinugboanong Binisaya
  • Svenska
  • Українска
  • Tiếng Việt
  • Winaray
  • 中文
  • Русски
Sunting pranala
Pusat Layanan

UNIVERSITAS TEKNOKRAT INDONESIA | ASEAN's Best Private University
Jl. ZA. Pagar Alam No.9 -11, Labuhan Ratu, Kec. Kedaton, Kota Bandar Lampung, Lampung 35132
Phone: (0721) 702022
Email: pmb@teknokrat.ac.id