Spring – najpopularniejszy framework Javy. Historia, zastosowanie, pierwsze kroki
Spring sprawia, że programowanie w Javie jest szybsze, łatwiejsze i bezpieczniejsze. Skupienie się na szybkości, prostocie i produktywności wpłynęły na to, że Spring to obecnie najpopularniejszy na świecie framework dla Javy. Przybliżamy Wam jego historię, zastosowanie, poszukaliśmy także najlepszych materiałów do nauki.
Spring to framework Javy stosowany do skracania czasu tworzenia aplikacji. Zachowując najlepsze praktyki pisania aplikacji, przyspiesza proces, ale też wspiera w utrzymaniu czystego kodu. Popularność tego frameworka przyniosło narzędzie Spring Boot, określane mianem “frameworka do frameworka”. Ale o nim w dalszej części artykułu.
Spis treści
Spring – historia i zastosowanie
Spring powstał na bazie kodu opublikowanego w książce Roda Johnsona “Design and Development”. Pozytywny odzew czytelników sprawił, że framework był dalej rozwijany przez Johnsona i Juergena Hoellera, którzy postanowili założyć firmę Interface21, świadczącą usługi konsultingowe związane z tym szablonem.
Pierwsze wydanie frameworka Spring wyszło w październiku 2002 r. na bazie licencji „Apache 2.0 license”. Z kolei wersja 1.0 ukazała się w marcu 2004 r.
ZOBACZ TEŻ: Wszystko, co musicie wiedzieć o języku Java. Co to? Dla kogo? I ile zarobimy?
Spring powstał jako alternatywa dla programowania aplikacji z użyciem Enterprise JavaBeans. Programowanie z użyciem EJB narzucało dość sporo ograniczeń – wymagając m.in. przyjęcia określonego modelu tworzenia oprogramowania; stworzenie małej aplikacji w środowisku EJB wymagało podobnego nakładu pracy, jak przy dużej aplikacji. Całkowicie odmienna koncepcja Springa – lekkiego szablonu, który nie wymusza specyficznego modelu programowania, stała się bardzo popularna wśród programistów Javy.
Spring Framework oferuje dużą swobodę w tworzeniu rozwiązań, a jednocześnie jest dobrze udokumentowany i zawiera rozwiązania wielu zagadnień, często występujących w programowaniu. Bazowe komponenty Springa mogą być używane praktycznie w każdej aplikacji, a elastyczny i obszerny zestaw rozszerzeń Springa pozwala programistom budować aplikacje webowe na bazie Java EE.
Źródło: Spring.io.
Szablon Spring Framework
Szablon Springa zawiera rozwiązania dla wielu zagadnień technicznych napotykanych przez programistów Javy. Duża liczba komponentów, które zawiera ten framework powoduje, że czasami trudno je rozróżnić.
Spring może być rozważany jako zbiór pomniejszonych szablonów lub „szablon zbudowany z szablonów”. Większość z nich została zaprojektowana tak, aby pracować niezależnie, jednakże użycie ich razem zapewnia większą funkcjonalność. Szablony te można podzielić ze względu na podstawowe moduły:
-
- kontener IoC – Spring zapewnia bazujące na JavaBeans zarządzanie konfiguracją przez stosowanie zasad odwrócenia sterowania (ang. Inversion-of-Control, IoC). Pozwala to na szybsze i prostsze składanie aplikacji,
- szablon programowania aspektowego – Spring zapewnia obsługę programowania aspektowego (Aspect Oriented Programming, AOP) zapewniające takie usługi jak zarządzanie transakcjami. AOP dostarcza możliwości zaimplementowania wspólnej logiki, która dotyka wielu miejsc w jednym miejscu i automatyczne jej dodawanie, tam, gdzie jest potrzebna,
- szablon dostępu do danych – warstwa abstrakcji JDBC, opakowuje standardowy mechanizm JDBC rzucając znaczące wyjątki zorganizowane w hierarchię (nie ma potrzeby wyciągania kodów dostawcy z wyjątku SQLException). Podejście to znacznie redukuje ilość kodu, którą musi napisać programista, aby obsłużyć błędy. Nie ma potrzeby pisania kolejnych bloków finally. Wyjątki związane z JDBC są zgodne z hierarchią wyjątków generycznego obiektu dostępu do danych (DAO) w Springu,
- szablon obsługi transakcji – Spring zapewnia generyczną warstwę abstrakcji (generic abstraction layer) dla zarządzania transakcjami. Pozwala na dołączanie własnych komponentów zarządzających transakcjami i łatwe odgraniczenie transakcji bez zagłębiania się w niskopoziomowe szczegóły,
- szablon Model-Widok-Kontroler – Spring zapewnia elastyczny szablon Model-Widok-Kontroler (MVC), zbudowany na bazowej funkcjonalności Springa. Programiści otrzymują wysoki stopień kontroli nad szablonem poprzez interfejsy strategii (strategy interfaces). Obsługuje on wiele technologii, w tym strony JSP, FreeMarker, Velocity, Tiles, iText, Apache POI,
- szablon zdalnego dostępu,
- szablon autoryzacji i uwierzytelniania,
- szablon zdalnego zarządzania JMX,
- szablon komunikatów JMS,
- szablon obsługi testowania.
Spring Boot – czym jest i jak zacząć?
Spring Boot to rozwiązanie convention-over-configuration bazujące na Springu. Główne korzyści, jakie nam dostarcza to:
- Łatwość uruchomienia – paczka projektu posiada wbudowany serwer i inne niezbędne komponenty, które są potrzebne do uruchomienia aplikacji.
- Automatyczna konfiguracja – do uruchomienia zasadniczej aplikacji nie jest wymagana żadna dodatkowa konfiguracja. Dodanie własnej jest opcjonalna dla osiągnięcia innych/nowych korzyści.
- Szybkość – tworzenie aplikacji z wykorzystaniem Spring Boot jest uproszczone, co przekłada się szybszy i łatwiejszy proces developmentu.
ZOBACZ TEŻ: Tworzenie aplikacji reaktywnych w Spring Boot
Jak zacząć w Spring Boot? Ciekawy materiał na ten temat stworzył Przemysław Bykowski, doświadczony programista, twórca kanału na YT i bloga Bykowski.pl:
Na blogu Bykowskiego znajdziemy też porady, jak stworzyć aplikację w Spring Boot, od “Hello World” począwszy. Materiały te dostępne są TUTAJ.
Zdjęcie główne pochodzi z unsplash.com. Źródła: Spring, Wikipedia, Bykowski.pl.