Kurs Springa postanowiliśmy rozpocząć od przedstawienia i rozwiązania pewnego problemu, który
obserwujemy od dłuższego czasu wśród programistów i który pojawia się szczególnie często podczas rozmów
kwalifikacyjnych. Otóż regularnie zdarza się, że na pytanie:
- "Jakie znasz moduły Spring Framework?" odpowiadają: - "Spring Boot, Spring Security..."
Natomiast na kolejne pytanie:
- "W takim razie jakie znasz projekty Springa?" odpowiadają: - "Spring Core, Spring MVC"
Zdarza się to również wśród całkiem dobrych programistów, którzy mają już na swoim koncie kilka
projektów napisanych w pełni z użyciem Springa. Zacznijmy zatem od początku i wyjaśnijmy w czym tkwi problem,
zapoznając się przy okazji z podstawowym podziałem platformy.
Najpierw Springa dzielimy na projekty, a dopiero później te projekty dzielimy na moduły (jeśli w
ogóle jest co dzielić). W bieżącym rozdziale skupimy się na tym pierwszym (podstawowym) podziale. Jakie
projekty wchodzą w skład najbardziej popularnej platformy (celowo ominęliśmy stwierdzenie framework)
Java na świecie? Przedstawiamy to w postaci listy z krótkimi zajawkami na temat każdego z projektów. Z
czasem będziemy rozwijać te opisy w osobnych rozdziałach i artykułach. Analizując listę zauważycie,
że tłumaczymy dlaczego Spring Boot i Spring Security to nie moduły Spring Framework, a Spring MVC to nie
projekt platformy jako takiej, tylko część samego Spring Frameworka.
Spring - lista projektów
Spring Boot
Umożliwia szybkie tworzenie aplikacji gotowych do
uruchomienia od ręki. Z ciekawszych rzeczy trzeba wspomnieć choćby o zestawach szablonów startowych
oraz o wbudowanym kontenerze aplikacji web (np. Tomcat), dzięki czemu możemy taką
aplikację uruchomić bez potrzeby stawiania własnego serwera.
Spring Framework
Główna i najjaśniejsza gwiazda na firmamencie Springa.
Fantastyczny projekt pozwalający na wygodne budowanie aplikacji webowych.
To tutaj znajdziemy Spring Core, a w nim m.in:
kontener IoC oraz wstrzykiwanie zależności (DI), opisywane szeroko w rozdziałach
Wstrzykiwanie zależności - podstawy
oraz
Wstrzykiwanie zależności - rozszerzenie.
Spring Framework zawiera w sobie
również framework Spring MVC (Spring Framework - Spring MVC), którego popularności nie trzeba chyba nikomu
przedstawiać.
Projektowi Spring Framework poświęcamy osobny rozdział, do
którego serdecznie zapraszamy już teraz (w końcu to z niego korzysta większość użytkowników
Springa) - Spring
Framework - Podstawowe funkcjonalności.
Podkreślamy, że Spring Framework to jedynie jeden z
projektów Springa, a nie Spring sam w sobie, stąd też we wstępie celowo użyliśmy słowa
"platforma" zamiast "framework". Źródła problemu z konwencją nazewniczą należy szukać w
początkach Springa, kiedy to istniał sam projekt Spring Framework i był potocznie nazywany
Springiem. Wraz z rozbudową platformy zaczęły się pojawiać inne projekty i pojęcie platforma
Springa uzyskało szersze znaczenie.
Spring Data
Szeroki zbiór rozwiązań ułatwiających dostęp do danych
zarówno relacyjnych jak i nie-relacyjnych. W ramach tego projektu rozwijane są moduły takie jak
np. Spring Data JPA, opisywany w rozdziale: Spring Data JPA 1.x - Podstawowe funkcjonalności.
Spring Security
Szalenie popularny projekt, który kompleksowo rozwiązuje
różne zagadnienia dotyczące autentykacji oraz autoryzacji. Standardowo wykorzystywany w
aplikacjach webowych.
Spring Cloud
Królestwo systemów opartych na mikroserwisach. Zbudowane na
Spring Boot i udostępniające szereg bibliotek ułatwiających pracę z mikroserwisami, np. load
balancing, routing, czy rejestracja usług.
Spring Cloud Data Flow
Usługa orkiestracji (orchestration service) zarządzająca
synchronicznym i asynchronicznym wywoływaniem usług sieciowych (wraz z obsługą błędów oraz
obsługą modyfikacji danych).
Spring Integration
Wsparcie dla Enterprise Integration Patterns czyli wzorców
integracyjnych klasy enterprise. Mamy tutaj choćby dostęp do kolejek RabbitMQ, czy też
mechanizmu JMS, albo np. do funkjconalności WebServices typu REST i SOAP.
Spring Batch
Wspiera przetwarzanie dużej ilości danych. Zawiera obsługę
zatrzymywania, restartu lub ponawiania procesów, zarządzania nimi w transakcji i wiele innych
ciekawych rozwiązań.
Spring HATEOAS
Dostarcza API dla HATEOAS (Hypermedia As The Engine Of
Application State).
Spring AMPQ
Dostarcza wsparcie kluczowych założeń Springa dla rozwiązań
powiadamiających typu AMPQ (Advanced Message Queuing Protocol)
Spring Mobile
Ułatwia programowanie moblinych aplikacji webowych poprzez
takie rozwiązania jak np. detekcja typu urządzenia mobilnego wysyłąjącego żądanie do aplikacji
web.
Spring Web Flow
Dostarcza rozwiązania umożliwijące tworzenie aplikacji
webowych obsługujących przepływ danych wraz z kontrolą tego przepływu (zarządza procesem
przechodzenia użytkownika z jednego stanu do innego zachowując wskazaną kolejność).
Spring Web Services
Wspiera tworzenie webserviców typu SOAP (document-driven Web
services).
Spring LDAP
Upraszcza tworzenie aplikacji używających LDAP-a.
Spring Session
Dostarcza API do zarządzania informacjami sesji użytkownika.
Umożliwia integrację z HttpSession, WebSocket, WebSession.
Trzeba przyznać, że lista jest imponująca, a do tego to ciągle nie wszystkie projekty. Znajdziemy
jeszcze takie jak, np: Spring For Android, Spring Kafka, Spring Social, Spring SCALA i wiele innych.
Nasza rekomendacja
Zalecamy aby w przypadku gdy mówimy o Springu jako o zbiorze projektów, używać pojęcia platforma i
dopiero w ramach tej platformy wyróżniać projekt o nazwie Spring Framework.
Początkujących użytkowników Spring-a zachęcamy do zapoznania się z wyróżnionymi (pogrubionymi) tematami w pierwszej kolejności. Praktycznie każda
aplikacja webowa stworzona z użyciem platformy Spring oparta jest w szczególności o Spring
Framework, Spring Security oraz Spring Data JPA. Zatem chcąc efektywnie pracować w projektach
informatycznych tworzonych z użyciem Springa należy te zagadnienia bardzo dobrze opanować.
Używamy w StartAPPa
Spring Boot, Spring Framework oraz Spring Data używamy oczywiście we wszystkich kursach związanych ze Springiem i aplikacjami webowymi.
Spring Security znajduje się w kodzie źródłowym aplikacji z Kursu Aplikacji Web, a całe logowanie jest opisywane
w rozdziałach Logowanie do aplikacji - Podstawy
oraz
Logowanie do aplikacji - Implementacja.
Javappa to również profesjonalne usługi programistyczne oparte o technologie JAVA. Jeśli chesz nawiązać
z nami kontakt w celu uzyskania doradztwa bądź stworzenia aplikacji webowej powinieneś poznać nasze
doświadczenia.
Kliknij O nas
.