Share to: share facebook share twitter share wa share telegram print page

Spring (framework)

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 [1]
Dernière version 6.2.0 ()[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 MultiplateformeVoir 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

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

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

Noyau de base

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

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

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

  1. https://src.springsource.org/svn/spring-maintenance/tags/release-1-0/changelog.txt
  2. « Release v6.2.0 »
  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

Sur les autres projets Wikimedia :

Articles connexes

Bibliographie

  • 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

Read other articles:

Artikel ini sebatang kara, artinya tidak ada artikel lain yang memiliki pranala balik ke halaman ini.Bantulah menambah pranala ke artikel ini dari artikel yang berhubungan atau coba peralatan pencari pranala.Tag ini diberikan pada Oktober 2022. Dream Garden (Hanzi: 沉睡花园) adalah sebuah seri drama Tiongkok tahun 2021. Seri tersebut dibintangi oleh Gong Jun dan Qiao Xin dan ditayangkan di Hunan TV dari 13 Desember 2021. Seri tersebut terdiri dari 16 episode.[1] Referensi ^ https…

1707 earthquake and tsunami off the southern coast of Japan You can help expand this article with text translated from the corresponding article in Japanese. (October 2018) Click [show] for important translation instructions. Machine translation, like DeepL or Google Translate, is a useful starting point for translations, but translators must revise errors as necessary and confirm that the translation is accurate, rather than simply copy-pasting machine-translated text into the English Wiki…

Kiren RijijuKiren Rijiju berpidato dalam ‘India Disaster Response Summit’, di New Delhi Menteri Urusan Pemuda dan OlahragaPetahanaMulai menjabat 30 Mei 2019Perdana MenteriNarendra Modi PendahuluKol. Rajyavardhan Singh RathorePenggantiPetahanaMenteri Urusan MinoritasPetahanaMulai menjabat 30 Mei 2019Perdana MenteriNarendra ModiMenteriMukhtar Abbas Naqvi PendahuluVirendra KumarPenggantiPetahanaMenteri Urusan Dalam NegeriMasa jabatan26 Mei 2014 – 30 Mei 2019Perdana MenteriNar…

بيغ غوت بانانا كريكيت التعليق شعار مسلسل بيغ غوت بانانا كريكيت النوع كوميدي البلد  الولايات المتحدة لغة العمل الإنجليزية , العربية عدد المواسم 1 عدد الحلقات 15 الإنتاج مدة العرض 24 دقيقة شركة الإنتاج استوديوهات نكلوديون للرسوم المتحركة الموزع شبكات باراماونت الإعلامية  …

ترومانسبورغ الإحداثيات 42°32′26″N 76°39′36″W / 42.5406°N 76.66°W / 42.5406; -76.66  [1] تاريخ التأسيس 1872  تقسيم إداري  البلد الولايات المتحدة[2]  التقسيم الأعلى مقاطعة تومبكينز  خصائص جغرافية  المساحة 3.603821 كيلومتر مربع3.60344 كيلومتر مربع (1 أبريل 2010)  ارتفاع 294…

United States historic placeFred Geiger and Sons National Biscuit CompanyU.S. National Register of Historic Places Fred Geiger and Sons National Biscuit Company, July 2011Show map of IndianaShow map of the United StatesLocation401 NW 2nd St, Evansville, IndianaCoordinates37°58′26″N 87°34′32″W / 37.97389°N 87.57556°W / 37.97389; -87.57556Arealess than one acreBuilt1894 (1894)ArchitectLinsey, H. C.MPSDowntown Evansville MRANRHP reference No.820000…

Football league seasonLiga IISeason2021–22ChampionsPetrolul PloieștiPromotedPetrolul PloieștiHermannstadtUniversitatea ClujRelegatedDunărea CălărașiDacia Unirea BrăilaAstra GiurgiuMatches played262Goals scored693 (2.65 per match)Biggest home winFC Buzău 14–0 UnireaBiggest away winCălărași 0–8 SloboziaHighest scoringBuzău 14–0 UnireaLongest winning run12 matches:Petrolul PloieștiLongest unbeaten run12 matches:Petrolul PloieștiMiercurea CiucLongest winless run21 matches:…

Romanian footballer and manager Florin Maxim Personal informationFull name Florin Sandu MaximDate of birth (1981-03-02) 2 March 1981 (age 43)Place of birth Brad, RomaniaHeight 1.78 m (5 ft 10 in)Position(s) Left back / Left midfielderTeam informationCurrent team Corvinul Hunedoara (manager)Youth career Aurul BradSenior career*Years Team Apps (Gls)1997–1998 Aurul Brad 33 (7)1998 Corvinul Hunedoara 8 (1)1999 Steaua București 2 (0)2000–2001 Unirea Alba Iulia 29 (5)2001 UM T…

Bad Pharma PengarangBen GoldacreSubjekIndustri farmasiPenerbitFourth Estate (Britania Raya), Faber & Faber (AS), Signal (Kanada)Tanggal terbit25 September 2012Jenis mediaCetakHalaman430 (edisi pertama)ISBNISBN 9780007350742OCLC805010249Didahului olehBad Science  Penulis Bad Pharma, Ben Goldacre. Bad Pharma: How Drug Companies Mislead Doctors and Harm Patients adalah sebuah buku karya dokter dan penulis asal Britania Raya, Ben Goldacre, yang diterbitkan oleh Fourth Estate …

كوفاراس    خريطة الموقع تقسيم إداري البلد اليونان  [1] خصائص جغرافية إحداثيات 37°49′40″N 23°58′08″E / 37.8279°N 23.969°E / 37.8279; 23.969   المساحة 24.371 كيلومتر مربع[2]  الارتفاع 209 متر  السكان التعداد السكاني 1704 (إحصاء السكان) (2001)1341 (resident population of Greece) (2021)1091 (resident …

Constitutional court for Suriname Constitutional Court of SurinameConstitutional Court of Suriname building in ParamariboEstablished2020LocationParamaribo, SurinameComposition methodAppointment by the President upon nomination by the National AssemblyAuthorized byArticle 144 of the Constitution of SurinameJudge term length5 years (once renewable)Number of positions8PresidentCurrentlyGloria Karg-StirlingSince7 May 2020Vice PresidentCurrentlyKenneth AmoksiSince7 May 2020 Politics of Suriname Const…

Names of the days of the week in various languages Days of the Week redirects here. For the song, see Days of the Week (song). Day name redirects here. For West African personal names, see Akan names. Monday Tuesday Wednesday Thursday Friday Saturday Sunday redirects here. For the song containing the phrase, see Seven (Jungkook song). Italian cameo bracelet representing the days of the week, corresponding to the planets as Roman gods: Diana as the Moon for Monday, Mars for Tuesday, Mercury for W…

Overview about the appeal procedure before the European Patent Office The European Patent Convention (EPC), the multilateral treaty instituting the legal system according to which European patents are granted, contains provisions allowing a party to appeal a decision issued by a first instance department of the European Patent Office (EPO). For instance, a decision of an Examining Division refusing to grant a European patent application may be appealed by the applicant. The appeal procedure befo…

Европейская сардина Научная классификация Домен:ЭукариотыЦарство:ЖивотныеПодцарство:ЭуметазоиБез ранга:Двусторонне-симметричныеБез ранга:ВторичноротыеТип:ХордовыеПодтип:ПозвоночныеИнфратип:ЧелюстноротыеГруппа:Костные рыбыКласс:Лучепёрые рыбыПодкласс:Новопёрые …

Chinese language newspaper in Malaysia This article is about a newspaper in Malaysia. For the Hong Kong newspaper, see Wah Kiu Yat Po. This article does not cite any sources. Please help improve this article by adding citations to reliable sources. Unsourced material may be challenged and removed.Find sources: Overseas Chinese Daily News – news · newspapers · books · scholar · JSTOR (July 2021) (Learn how and when to remove this template message) Overseas…

Italian painter (c. 1485–1547) Sebastiano del PiomboCopy of The Violinist, sometimes claimed to be a self portraitBornSebastiano Lucianic. 1485Probably Venice, ItalyDied21 June 1547 (aged 61–62)Rome, Papal StatesEducationGiovanni Bellini, probably GiorgioneKnown forPaintingMovementHigh Renaissance Sebastiano del Piombo (Italian: [sebaˈstjaːno del ˈpjombo]; c. 1485 – 21 June 1547) was an Italian painter of the High Renaissance and early Mannerist periods…

Bentzi GopsteinGopstein pada 2016LahirBen-Zion Gophstein10 September 1969 (umur 54)PekerjaanAktivisme KahanisDikenal atasMendirikan LehavaPartai politikOtzma YehuditSuami/istriAnat GopsteinAnak8 Ben-Zion Bentzi Gophstein (Ibrani: בן־ציון בנצי גופשטיין, lahir 10 September 1969) adalah seorang aktivis politik yang berafiliasi dengan sayap kanan radikal di Israel, murid Meir Kahane, dan pendiri[1] dan direktur Lehava, sebuah organisasi anti-asimilasi Yahudi Israe…

Japanese politician (born 1958) You can help expand this article with text translated from the corresponding article in Japanese. (February 2013) Click [show] for important translation instructions. View a machine-translated version of the Japanese article. Machine translation, like DeepL or Google Translate, is a useful starting point for translations, but translators must revise errors as necessary and confirm that the translation is accurate, rather than simply copy-pasting machine-trans…

This article contains content that is written like an advertisement. Please help improve it by removing promotional content and inappropriate external links, and by adding encyclopedic content written from a neutral point of view. (October 2010) (Learn how and when to remove this message) Parris CuesIndustrySports equipmentFoundedLondon, UK(1984 (1984))FounderJohn ParrisHeadquartersLondon, UKProductsSnooker & Pool Cues, Cases & AccessoriesWebsiteparriscues.com Parris Cues are a snoo…

Pour les articles homonymes, voir Giraud. Joël Giraud Joël Giraud en 2017. Fonctions Député français En fonction depuis le 21 juin 2022(1 an, 10 mois et 12 jours) Réélection 19 juin 2022 Circonscription 2e des Hautes-Alpes Législature XVe et XVIe (Cinquième République) Groupe politique RE Prédécesseur Claire Bouchet 18 juin 2002 – 26 août 2020(18 ans, 2 mois et 8 jours) Élection 16 juin 2002 Réélection 17 juin 200717 juin 201218 juin 2017 Circonscr…

Kembali kehalaman sebelumnya