Springframework
| Springframework | ||
|---|---|---|
|
| ||
| Informacje ogólne | ||
| typ programu | framework dla webowych aplikacji mobilnych | |
| deweloper | WiosnaŹródło | |
| Pierwsze wydanie | 1 października 2002 r . | |
| Licencja | Licencja Apache 2.0 | |
| Rzeczywisty stan | Aktywny | |
| Specyfikacja | ||
| Zaplanowano w | ||
| Obsługiwane platformy | Maszyna wirtualna Java | |
| Wersje | ||
| Najnowsza stabilna wersja | 5.1.6 (1 kwietnia 2019 (3 lata, 6 miesięcy i 16 dni) [ 1 ] ) | |
| Spinki do mankietów | ||
Spring to open source'owa inwersja kontenera kontrolnego i framework do tworzenia aplikacji dla platformy Java . [ 2 ]
Pierwsza wersja została napisana przez Roda Johnsona, który wydał ją wraz z publikacją swojej książki Expert One-on-One J2EE Design and Development (Wrox Press, październik 2002). Framework został pierwotnie wydany na licencji Apache 2.0 w czerwcu 2003 roku. Pierwszym głównym wydaniem była wersja 1.0, która pojawiła się w marcu 2004 roku, a po niej nastąpiły kolejne kamienie milowe we wrześniu 2004 i marcu 2005 roku. Wersja 1.2.6 Spring Framework zdobyła Jolt Awards i Jax Innovation Awards w 2006 r. [ 3 ] [ 4 ] Spring Framework 2.0 został wydany w 2006 r., wersja 2.5 w listopadzie 2007 r., Spring 3.0 w grudniu 2009 r., a Spring 3.1 dwa lata później. [ 5 ] Rozpoczęcie prac nad wersją 4.0 ogłoszono w styczniu 2013 roku. [ 6 ] Obecna wersja to 5.1.6. [ 1 ]
Chociaż podstawowe cechy Spring Framework mogą być wykorzystane w dowolnej aplikacji opracowanej w Javie, istnieje kilka rozszerzeń do budowania aplikacji internetowych na platformie Java EE . Chociaż nie narzuca żadnego konkretnego modelu programowania, framework ten stał się popularny w społeczności, ponieważ jest uważany za uzupełnienie modelu EJB ( Enterprise JavaBean ).
Historia
Pierwsze elementy tego, co stało się Spring Framework, zostały napisane przez Roda Johnsona w 2000 roku, pracując jako niezależny konsultant dla swoich klientów z branży finansowej w Londynie. Pisząc książkę Expert One-on-one J2EE Design and Development (programista do programisty) , Rod rozszerzył swój kod, aby uchwycić swoją wizję tego, jak aplikacje współpracujące z różnymi częściami platformy J2EE mogą stać się prostsze i bardziej wydajne. i firmy korzystały wtedy.
W 2001 roku dominujące modele programowania aplikacji internetowych były oferowane przez Java Servlet API i Enterprise JavaBeans , obie specyfikacje stworzone przez Sun Microsystems we współpracy z innymi dostawcami i interesariuszami, które cieszyły się dużą popularnością w społeczności Java. Aplikacje, które nie były oparte na sieci Web, takie jak aplikacje klienckie lub aplikacje wsadowe , mogą być pisane w oparciu o narzędzia i projekty typu open source lub komercyjne, które zapewniają funkcje wymagane do tych programów.
Wreszcie, po opublikowaniu swojej książki w 2002 roku, Rod Johnson po raz pierwszy zaprezentował swój kod dla frameworka Java Interface 21, który miał stać się podstawą Spring Framework [ 7 ] . Powstał niewielki zespół programistów z nadzieją, że będą pracować nad rozszerzeniem frameworka , aw lutym 2003 r. powstał projekt na Sourceforge . Po ponad roku pracy nad jego rozwojem wydali pierwszą wersję (wersja 1.0) w marcu 2004 r. Po tym wydaniu , Spring zyskał dużą popularność w społeczności Java, po części dzięki wykorzystaniu Javadoc i ponadprzeciętnej dokumentacji referencyjnej dla projektu open source.
Jednak Spring Framework był również mocno krytykowany w 2004 roku i nadal jest przedmiotem gorącej debaty. W momencie pierwszego głównego wydania wielu programistów i liderów myśli postrzegało Spring jako duży krok naprzód w stosunku do tradycyjnego modelu programowania; dotyczyło to zwłaszcza Enterprise JavaBeans. Jednym z celów projektowych Spring Framework jest łatwość integracji z istniejącymi standardami J2EE i narzędziami komercyjnymi. Częściowo eliminuje to potrzebę określenia jego cech w dokumencie specyfikacji sporządzonym przez oficjalną komisję i który mógłby zostać skrytykowany.
Spring Framework sprawił, że techniki nieznane większości programistów stały się popularne w bardzo krótkim czasie. Najbardziej godnym uwagi przykładem jest odwrócenie kontroli . W 2004 r. Spring cieszył się niezwykle wysokim wskaźnikiem przyjęcia, a oferując własny framework programowania zorientowanego aspektowo ( AOP ) sprawił , że jego paradygmat programowania stał się bardziej popularny w społeczności Java. [ potrzebne cytowanie ]
W 2005 r. wiosna przekroczyła wskaźniki rozpowszechnienia z poprzedniego roku dzięki nowym wydaniom i dodaniu większej liczby funkcji. Forum społeczności utworzone wokół Spring Framework (The Spring Forum), które rozpoczęło się pod koniec 2004 roku, również pomogło zwiększyć popularność frameworka i od tego czasu stało się najważniejszym źródłem informacji i pomocy dla jego użytkowników.
Moduły
Spring Framework składa się z kilku modułów, które zapewniają szereg usług:
- Inversion of control wrapper – umożliwia konfigurację składników aplikacji i zarządzanie cyklem życia obiektów Java, głównie poprzez wstrzykiwanie zależności .
- Programowanie zorientowane aspektowo : umożliwia implementację procedur przechodzenia.
- Dostęp do danych : praca z RDBMS na platformie Java przy użyciu narzędzi Java Database Connectivity i Relational Object Mapping z bazami danych NoSQL .
- Zarządzanie transakcjami : ujednolica różne interfejsy API zarządzania i koordynuje transakcje dla obiektów Java.
- Kontroler widoku modelu : Framework oparty na protokole HTTP i serwletach , który zapewnia narzędzia do rozszerzania i dostosowywania aplikacji internetowych oraz usług sieciowych zgodnych z REST .
- Remote Access Framework : umożliwia importowanie i eksportowanie obiektów Java w stylu RPC w sieciach obsługujących protokoły RMI , CORBA i HTTP , w tym usługi internetowe ( SOAP ) .
- Konwencja nad konfiguracją : moduł Spring Roo oferuje szybkie rozwiązanie do tworzenia aplikacji opartych na Spring Framework, faworyzując prostotę bez utraty elastyczności.
- Przetwarzanie wsadowe : struktura przetwarzania dużych ilości danych, która obejmuje funkcje rejestrowania/śledzenia, obsługę transakcji, statystyki przetwarzania zadań, ponowne uruchamianie zadań i zarządzanie zasobami.
- Uwierzytelnianie i autoryzacja — konfigurowalne procesy bezpieczeństwa, które obsługują szereg standardów, protokołów, narzędzi i praktyk w ramach podprojektu Spring Security (dawniej Acegi).
- Administracja zdalna : Widoczność konfiguracji i zarządzanie obiektami Java do lokalnej lub zdalnej konfiguracji za pośrednictwem JMX .
- Komunikaty : Konfigurowalny rejestr obiektów odbiorców komunikatów, w celu przejrzystego wykorzystania z via JMS , usprawnienie wysyłania komunikatów w porównaniu ze standardowymi interfejsami API JMS.
- Testing : Wsparcie klas dla rozwoju testów jednostkowych i integracji.
Odwrócenie kontenera kontrolnego
Sercem Spring Framework jest kontener odwrócenia kontroli (IoC). Jego zadaniem jest tworzenie instancji, inicjowanie i łączenie obiektów aplikacji, a także zapewnianie szeregu dodatkowych funkcji dostępnych w Springu przez cały okres istnienia obiektu. [ 8 ]
Obiekty tworzone i zarządzane przez kontener są nazywane obiektami zarządzanymi lub ziarnami . Obiekty te są typu POJO . Aby wykonać swoje zadanie, kontener potrzebuje informacji wskazujących sposób tworzenia instancji i łączenia ziaren ze sobą . Te informacje są nazywane metadanymi konfiguracyjnymi. Istnieją różne sposoby dostarczania tych informacji: oparte na XML, oparte na adnotacjach lub oparte na obiektach Java (od wersji Spring 3.0). Kontener jest niezależny od formatu metadanych konfiguracji. Użytkownik może używać dowolnego formatu, a nawet mieszać je w tej samej aplikacji. [ 8 ]
Obiekty można uzyskać przez wyszukiwanie zależności lub przez iniekcję zależności . [ 9 ] wyszukiwanie zależności to model, w którym zawierający obiekt jest pytany o obiekt o określonej nazwie lub określonym typie. Wstrzykiwanie zależności to model, w którym kontener przekazuje obiekty według nazwy do innych obiektów za pomocą metod konstruktora, właściwości lub metod fabrycznych.
W wielu przypadkach podczas korzystania z innych części Spring Framework nie trzeba używać Wrappera, chociaż korzystanie z niego prawdopodobnie ułatwi konfigurację i dostosowanie aplikacji. Spring Container zapewnia spójny mechanizm konfigurowania aplikacji i integruje się z prawie wszystkimi środowiskami Java, od małych aplikacji po aplikacje dla dużych przedsiębiorstw.
Kontener można częściowo przekształcić w kontener EJB 3.0 za pomocą projektu Pitchfork . Niektórzy krytykują Spring Framework za niezgodność ze standardami. [ 10 ] Jednak SpringSource nie postrzega zgodności z EJB 3 jako ważnego celu, twierdząc, że Spring Framework i kontener pozwalają na bardziej zaawansowane modele programowania. [ 11 ] Nie tworzysz obiektu, ale opisujesz, jak powinien zostać utworzony, definiując go w pliku konfiguracyjnym Spring. Nie wywołujesz usług i komponentów, ale mówisz, które usługi i komponenty powinny być wywoływane, definiując je w plikach konfiguracyjnych Spring. Dzięki temu kod jest łatwiejszy w utrzymaniu i łatwiejszy do testowania przy użyciu wstrzykiwania zależności (IoC).
Zobacz także
- Przewodnik Google
- Umysł ula Apache
- Wiosna WebFlow
Uwagi i odniesienia
- ↑ a b Spring Framework 5.1.6, 5.0.13 i 4.3.23 już dostępne
- ↑ Prezentacja funkcji SpringSource
- ↑ Zwycięzcy Joltwinki 2006
- ↑ Zdobywca nagrody JAX Innovation Award 2006
- SpringSource.org _
- ↑ Następny przystanek: Spring Framework 4.0. (w języku angielskim) . Źródło 24 września 2019.
- ↑ „Wiosna: framework dla złożonych aplikacji Java” . Cyfrowy przewodnik IONOS . Źródło 28 czerwca 2022 .
- ↑ a b Początek wiosny Zarchiwizowane 19 lutego 2018 r. w Wayback Machine .. Rozdział 2. Wydawnictwo Mert Çalıskan i Kenan Sevindik John Wiley & Sons, Inc. 2015
- ↑ Jaka jest różnica między wyszukiwaniem zależności a wstrzykiwaniem zależności - Spring Forum . Forum.springsource.org (28.10.2009). Pobrano 24.11.2013.
- ↑ Sprężyna VS EJB3
- ↑ „Najczęściej zadawane pytania dotyczące wideł” . Pobrano 6 czerwca 2006 .
Bibliografia
- Mak, Gary (1 września 2010). Przepisy wiosenne: podejście do rozwiązywania problemów (wydanie drugie). Naciśnij . p. 1104. ISBN 1-4302-2499-1 .
- Ściany, Craig (28 listopada 2010). Wiosna w działaniu (III edycja). Załoga . p. 700. ISBN 1-935182-35-8 .
- Ściany, Craig; Breidenbach, Ryan (16 sierpnia 2007). Wiosna w działaniu (wydanie drugie). Załoga . s. 650 . ISBN 1-933988-13-4 .
- Johnsona, Roda; Holler, Jürgen; Arendsen, Aleph; Risberg, Thomas; Sampaleanu, Colin (8 lipca 2005). Profesjonalne programowanie w języku Java z wykorzystaniem Spring Framework (pierwsza edycja). Wrox Prasa . p. 672. ISBN 0-7645-7483-3 . Zarchiwizowane z oryginału w dniu 24 listopada 2010 . Źródło 18 stycznia 2013 .
- Harrop, Rob; Machacek, Jan (31 stycznia 2005). Pro Spring (I edycja). Naciśnij . s. 832 . ISBN 1-59059-461-4 . Zarchiwizowane z oryginału 18 lutego 2012 roku . Źródło 18 stycznia 2013 .
- Johnsona, Roda; Jürgen, Höller (23 października 2002). Rozwój J2EE bez EJB (pierwsza edycja). Wrox Prasa . s. 768 . ISBN 0-7645-5831-5 .
- Johnson, Rod (październik 2002). Ekspert w zakresie indywidualnego projektowania i rozwoju J2EE (pierwsza edycja). Wrox Prasa . p. 750. ISBN 0-7645-4385-7 .
Linki zewnętrzne
- Springframework
- Samouczki Spring Framework w języku hiszpańskim
- Spring Framework w języku hiszpańskim – Grupa dyskusyjna Google
- Wiosna Hiszpanie
- SpringActionScript
- WiosnaPartia
- Spring Framework — dokumentacja referencyjna
- Wiosna: sztuka używania wzorów GRASP
- Blossom: Moduł integracji Spring Framework dla Magnolia CMS
- Koncepcja samouczków wiosennych z przykładami wiosennymi zarchiwizowana 24 lutego 2021 r. w Wayback Machine .
- wiosenne samouczki ramowe
- Wiosenny przewodnik
- Wiosenny szablon Jdbc 7