close

SpringFramework

Mergi la navigare Mergi la căutare
SpringFramework
Sigla cadru de primăvară 2018.svg
Informatii generale
tip de program cadru pentru aplicații web mobile
dezvoltator SpringSource
lansarea inițială 1 octombrie 2002
Licență Licență Apache 2.0
Starea reală Activ
Informații tehnice
Programat în
Platforme acceptate mașină virtuală java
Versiuni
Ultima versiune stabilă 5.1.6 (1 aprilie 2019 (3 ​​ani, 6 luni și 16 zile) [ 1 ] )
Legături

Spring este o inversare open source a containerului de control și a cadrului de dezvoltare a aplicațiilor pentru platforma Java . [ 2 ]

Prima versiune a fost scrisă de Rod Johnson, care a lansat-o odată cu publicarea cărții sale Expert One-on-One J2EE Design and Development (Wrox Press, octombrie 2002). Cadrul a fost lansat inițial sub licența Apache 2.0 în iunie 2003. Prima lansare majoră a fost versiunea 1.0, care a apărut în martie 2004 și a fost urmată de alte etape în septembrie 2004 și martie 2005. Versiunea 1.2.6 Spring Framework a câștigat premiile Jolt și Premiile Jax Innovation în 2006. [ 3 ] ​[ 4 ]​ Spring Framework 2.0 a fost lansat în 2006, versiunea 2.5 în noiembrie 2007, Spring 3.0 în decembrie 2009 și Spring 3.1 doi ani mai târziu după-amiază. [ 5 ] Începutul dezvoltării versiunii 4.0 a fost anunțat în ianuarie 2013. [ 6 ] Versiunea actuală este 5.1.6. [ 1 ]

Deși caracteristicile fundamentale ale Spring Framework pot fi utilizate în orice aplicație dezvoltată în Java, există mai multe extensii pentru construirea de aplicații web pe platforma Java EE . Deși nu impune niciun model de programare anume, acest cadru a devenit popular în comunitate, deoarece este considerat o completare a modelului EJB ( Enterprise JavaBean ).

Istoric

Primele componente ale ceea ce a devenit Spring Framework au fost scrise de Rod Johnson în 2000, în timp ce lucra ca consultant independent pentru clienții săi din industria financiară din Londra. În timp ce scria cartea Expert One-on-one J2EE Design And Development (de la programator la programator) , Rod și-a extins codul pentru a-și îngloba viziunea despre modul în care aplicațiile care lucrează cu diferite părți ale platformei J2EE ar putea deveni mai simple și mai eficiente decât acei dezvoltatori. iar companiile foloseau atunci.

În 2001, modelele dominante de programare pentru aplicațiile bazate pe web au fost oferite de API -ul Java Servlet și de Enterprise JavaBeans , ambele specificații create de Sun Microsystems în colaborare cu alți furnizori și părți interesate care s-au bucurat de o mare popularitate în comunitatea Java. Aplicațiile care nu erau bazate pe web, cum ar fi aplicațiile bazate pe client sau aplicațiile batch , puteau fi scrise pe baza unor instrumente și proiecte cu sursă deschisă sau comerciale care furnizau caracteristicile necesare pentru acele dezvoltări.

În cele din urmă, după ce și-a publicat cartea în 2002, Rod Johnson și-a prezentat pentru prima dată codul pentru framework-ul Java Interface 21 care avea să devină baza cadrului Spring [ 7 ] . S-a format o echipă mică de dezvoltatori sperând să lucreze la extinderea cadrului și a fost creat un proiect pe Sourceforge în februarie 2003. După ce au lucrat la dezvoltarea sa timp de peste un an, au lansat o primă versiune (versiunea 1.0) în martie 2004. După această lansare , Spring a câștigat multă popularitate în comunitatea Java, în parte datorită utilizării Javadoc și a documentației de referință peste medie pentru un proiect open source.

Cu toate acestea, Cadrul de primăvară a fost, de asemenea, puternic criticat în 2004 și este încă subiectul unei dezbateri aprinse. La momentul primei sale lansări majore, mulți dezvoltatori și lideri de gândire au văzut Spring ca un mare pas înainte de modelul tradițional de programare; acest lucru a fost valabil mai ales pentru Enterprise JavaBeans. Unul dintre obiectivele de proiectare ale Spring Framework este ușurința sa de integrare cu standardele J2EE și instrumentele comerciale existente. Acest lucru înlătură parțial necesitatea definirii caracteristicilor sale într-un caiet de sarcini întocmit de un comitet oficial și care ar putea fi criticat.

Spring Framework a făcut ca tehnicile necunoscute de majoritatea programatorilor să devină populare într-o perioadă foarte scurtă de timp. Cel mai notabil exemplu este inversarea controlului . În 2004, Spring s-a bucurat de rate de adoptare extrem de ridicate și, oferind propriul cadru de programare orientată pe aspect ( AOP ) , și-a făcut paradigma de programare mai populară în comunitatea Java. [ necesită citare ]

În 2005, primăvara a depășit ratele de adoptare din anul precedent, ca urmare a noilor versiuni și a mai multor funcții adăugate. Forumul comunității format în jurul Cadrului de primăvară (Forumul de primăvară), care a început la sfârșitul anului 2004, a contribuit, de asemenea, la creșterea popularității cadrului și de atunci a devenit cea mai importantă sursă de informații și ajutor pentru utilizatorii săi.

Module

Spring Framework cuprinde mai multe module care oferă o gamă largă de servicii:

  • Inversarea pachetului de control – Permite configurarea componentelor aplicației și gestionarea ciclului de viață al obiectelor Java, în primul rând prin injecția de dependență .
  • Programare orientată pe aspecte : Permite implementarea rutinelor de traversare.
  • Acces la date : lucrul cu RDBMS pe platforma Java, folosind instrumentele de conectivitate la baze de date Java și de mapare a obiectelor relaționale cu baze de date NoSQL .
  • Gestionarea tranzacțiilor : unifică diferite API-uri de management și coordonează tranzacțiile pentru obiectele Java.
  • Controler de vizualizare model : Un cadru bazat pe HTTP și servlet -uri, care oferă instrumente pentru extinderea și personalizarea aplicațiilor web și a serviciilor web RESTful .
  • Remote Access Framework : Permite importul și exportul în stil RPC de obiecte Java în rețele care acceptă protocoale RMI , CORBA și HTTP , inclusiv servicii web ( SOAP ).
  • Convenție peste Configurare : modulul Spring Roo oferă o soluție rapidă pentru dezvoltarea aplicațiilor bazate pe Spring Framework, favorizând simplitatea fără a pierde flexibilitatea.
  • Procesare în loturi : un cadru pentru procesarea de mare volum, care include funcții de înregistrare/urmărire, gestionarea tranzacțiilor, statistici de procesare a sarcinilor, repornirea activității și gestionarea resurselor.
  • Autentificare și autorizare – procese de securitate configurabile care acceptă o serie de standarde, protocoale, instrumente și practici prin subproiectul Spring Security (fostul Acegi).
  • Administrare la distanță : Vizibilitatea configurației și gestionarea obiectelor Java pentru configurarea locală sau la distanță prin JMX .
  • Mesaje : Registrul configurabil al obiectelor receptor de mesaje, pentru un consum transparent de la via JMS , o îmbunătățire a trimiterii mesajelor față de API-urile JMS standard.
  • Testare : suport de clasă pentru dezvoltarea testelor unitare și integrare.

Inversarea containerului de control

Inima Spring Framework este containerul său de inversare a controlului (IoC). Sarcina sa este de a instanția, inițializarea și conectarea obiectelor aplicației, precum și de a oferi o serie de caracteristici suplimentare disponibile în Spring pe toată durata de viață a obiectului. [ 8 ]

Obiectele create și gestionate de container se numesc obiecte gestionate sau fasole . Aceste obiecte sunt de tip POJO . Pentru a-și îndeplini sarcina, containerul are nevoie de informații care să indice modul de instanțiere și conectare a boabelor între ele . Aceste informații se numesc metadate de configurare. Există diferite moduri de a furniza aceste informații: bazate pe XML, bazate pe adnotări sau bazate pe obiecte Java (din Spring 3.0). Containerul este independent de formatul metadatelor de configurare. Utilizatorul poate folosi orice format dorește și chiar le poate amesteca în aceeași aplicație. [ 8 ]

Obiectele pot fi obținute prin căutarea dependenței sau prin injectarea dependenței . [ 9 ] ​căutarea dependenței este un model în care obiectului care îl conține i se cere un obiect cu un nume specific sau de un anumit tip. Injecția de dependență este un model în care containerul transmite obiecte după nume altor obiecte, fie prin metode constructoare, proprietăți sau metode din fabrică.

În multe cazuri, atunci când utilizați alte părți ale Spring Framework, nu este necesar să utilizați Wrapper-ul, deși utilizarea acestuia vă va permite probabil să faceți o aplicație mai ușor de configurat și personalizat. Spring Container vă oferă un mecanism consecvent pentru configurarea aplicațiilor și se integrează cu aproape toate mediile Java, de la aplicații mici la aplicații pentru întreprinderi mari.

Containerul poate fi convertit parțial într-un container EJB 3.0 prin proiectul Pitchfork . Unii critică Cadrul de primăvară pentru că nu respectă standardele. [ 10 ] Cu toate acestea, SpringSource nu vede conformitatea cu EJB 3 ca un obiectiv important, afirmând că Spring Framework și containerul permit modele de programare mai puternice. [ 11 ]​ Nu creați un obiect, ci descrieți cum ar trebui să fie creat, definindu-l în fișierul de configurare Spring. Nu apelați serviciile și componentele, ci spuneți ce servicii și componente trebuie apelate, definindu-le în fișierele de configurare Spring. Acest lucru face codul mai ușor de întreținut și mai ușor de testat folosind Dependency Injection (IoC).

Vezi și

Note și referințe

  1. a b Spring Framework 5.1.6, 5.0.13 și 4.3.23 disponibile acum
  2. Tur al caracteristicilor SpringSource
  3. Joltwinners 2006
  4. ^ JAX Innovation Award Gewinner 2006
  5. SpringSource.org
  6. Next Stop: Spring Framework 4.0. (în engleză) . Preluat la 24 septembrie 2019.
  7. „Primăvara: cadrul pentru aplicații complexe Java” . Ghid digital IONOS . Preluat la 28 iunie 2022 . 
  8. a b Beginning Spring Arhivat la 19 februarie 2018, la Wayback Machine .. Capitolul 2. Mert Çalıskan și Kenan Sevindik Editor John Wiley & Sons, Inc. 2015
  9. Care este diferența dintre căutarea dependenței și injectarea dependenței - Spring Forum . Forum.springsource.org (2009-10-28). Consultat la 24.11.2013.
  10. Spring VS EJB3
  11. „PitchforkFAQ” . Consultat la 6 iunie 2006 .  

Bibliografie

  • Mak, Gary (1 septembrie 2010). Rețete de primăvară: o abordare de rezolvare a problemelor (ediția a doua). Apăsați . p. 1104. ISBN  1-4302-2499-1 . 
  • Walls, Craig (28 noiembrie 2010). Spring in Action (Ediția a treia). Manning . p. 700. ISBN  1-935182-35-8 . 
  • Walls, Craig; Breidenbach, Ryan (16 august 2007). Primăvara în acțiune (ediția a doua). Manning . pp. 650 . ISBN  1-933988-13-4 . 
  • Johnson, Rod; Holler, Jurgen; Arendsen, Aleph; Risberg, Thomas; Sampaleanu, Colin (8 iulie 2005). Dezvoltare Java profesională cu Spring Framework (Prima ediție). Wrox Press . p. 672. ISBN  0-7645-7483-3 . Arhivat din original pe 24 noiembrie 2010 . Recuperat la 18 ianuarie 2013 . 
  • Harrop, Rob; Machacek, Jan (31 ianuarie 2005). Pro Spring (Prima ediție). Apăsați . pp. 832 . ISBN  1-59059-461-4 . Arhivat din original pe 18 februarie 2012 . Recuperat la 18 ianuarie 2013 . 
  • Johnson, Rod; Jürgen, Höller (23 octombrie 2002). Dezvoltare J2EE fără EJB (Prima ediție). Wrox Press . pp. 768 . ISBN  0-7645-5831-5 . 
  • Johnson, Rod (octombrie 2002). Expert One-on-one J2EE Design and Development (Prima ediție). Wrox Press . p. 750. ISBN  0-7645-4385-7 . 

Link- uri externe