Spring Boot – projekt ułatwiający tworzenie aplikacji w Javie

Spring Framework to główna platforma programistyczna, która sprawia, że tworzenie środowiska Java jest łatwiejsze i bardziej wydajne. Sam Spring jest również określany jako typ „lekkiej infrastruktury”, ponieważ występuje bardzo mały stopień zależności od API.

Z poniższego artykułu dowiesz się:

  • czym jest projekt Spring Boot?
  • w jaki sposób tworzy się aplikacje w Spring Boot?
  • jakie są zalety korzystania z owego rozwiązania?

Jak powstał Spring Boot? 

Zanim powstał projekt Spring Boot, programiści używając frameworka Spring musieli sami dbać o zachowanie prawidłowych zależności pomiędzy dodawanymi bibliotekami. Częstym problemem podczas konfiguracji API była niekompatybilność dołączanych bibliotek. Dodatkowym wyzwaniem była konieczność posiadania zewnętrznego serwera (np.: „Tomcat”), który pozwalał na wgranie aplikacji i weryfikację poprawności jej działania. Konfiguracja, wgrywanie, uruchamianie oraz testowanie aplikacji było bardzo pracochłonne. Dlatego grupa developerów wspierających rozwój Spring Framework postanowiła skrócić tworzenie nowej aplikacji.  

Budowanie aplikacji za pomocą Spring Boot 

W celu rozwiązania wcześniej zdefiniowanych problemów, programiści stworzyli tzw. „startery”. W uproszczeniu – startery to zbiór wszystkich wymaganych bibliotek oraz konfiguracji. Posiada również wbudowany serwer aplikacyjny Tomcat. Aby zacząć używać Spring Boot wystarczy: 

  • dodać odpowiednie zależności do pliku konfiguracyjnego pom.xml (w przypadku używania Maven)
  • dodać „rodzica”, po którym aplikacja będzie dziedziczyć zależności

Poniżej przykład pokazujący, jak niewiele pracy trzeba wykonać, aby czerpać zyski ze wszystkich korzyści Spring Boot:

&lt;parent&gt;<span data-ccp-props="{}"> </span>
             &lt;groupId&gt;org.springframework.boot&lt;/groupId&gt;
             &lt;artifactId&gt;spring-boot-starter-parent&lt;/artifactId&gt;<span data-ccp-props="{}"> </span>
             &lt;version&gt;1.5.9.RELEASE&lt;/version&gt;<span data-ccp-props="{}"> </span>
&lt;/parent&gt;

Jak widać, Spring Boot pozwala uniknąć poświęcenia wielu godzin przy tworzeniu podstawowej konfiguracji.

Następną czynnością jaką trzeba wykonać, jest dodanie starterów do swoich zależności. Taką biblioteką jest m.in. starter o nazwie „spring-boot-starter-web”, który dostarcza biblioteki związane z obsługą mechanizmów webowych. Poniżej przykład dodanej zależności. 

&lt;dependencies&gt;<span data-ccp-props="{}"> 
</span>              (...)<span data-ccp-props="{}"> 
</span>              &lt;dependency&gt;<span data-ccp-props="{}"> 
</span>                            &lt;groupId&gt;org.springframework.boot&lt;/groupId&gt;<span data-ccp-props="{}"> 
</span>                            &lt;artifactId&gt;spring-boot-starter-web&lt;/artifactId&gt;<span data-ccp-props="{}"> 
</span>              &lt;/dependency&gt;<span data-ccp-props="{}"> 
</span>              (...)<span data-ccp-props="{}"> 
</span>&lt;/dependencies&gt;<span data-ccp-props="{}"> 
 
</span>

Ostatnim elementem procesu jest utworzenie klasy, będzie ona odpowiedzialna za uruchamianie aplikacji. 

@SpringBootApplication<span data-ccp-props="{}"> </span>
<b>public</b> <b>class</b> ExampleApplication {<span data-ccp-props="{}"> </span>
<b>              public</b> <b>static</b> <b>void</b> main(String[] args) {<span data-ccp-props="{}"> </span>
                          SpringApplication.<i>run</i>(ExampleApplication.<b>class</b>, args);<span data-ccp-props="{}"> </span>
              }<span data-ccp-props="{}"> </span>
}<span data-ccp-props="{}"> </span><span data-ccp-props="{}"> 
 
</span>

Mając tak przygotowaną aplikację, można ją uruchomić na dwa sposoby: 

  • przez środowisko developerskie jako „Java application” 
  • z linii komend (java-jar…) 

Jeżeli jesteś ciekaw szczegółów, to zajrzyj na oficjalną stronę projektu Spring

Adaptacja Spring Boot w mikroserwisach

Twórcy Spring Framework dostrzegając ogromny potencjał swojego projektu, zaczęli go bardzo szybko rozwijać. Ten proces zapoczątkował powstawanie coraz większej ilości Spring Boot starterów. Dlaczego aplikacje oparte na Spring Boot sprzyjają rozwojowi systemów IT, opartych na architekturze mikroserwisów? Zanim odpowiemy na to pytanie, doprecyzujmy czym są same mikroserwisy. 

Mikroserwisy, jak nazwa wskazuje, to bardzo małe aplikacje, które realizują niewielki wycinek zdań w stosunku do całego systemu IT. Tworzone są w takim sposób, aby były jak najbardziej autonomiczne i luźno powiązane z innymi serwisami. W tym celu powinno się je uruchamiać na osobnych hostach – zapewnia to większą niezależność i pomoże uniknąć przeładowania serwera oraz jego ewentualnych awarii.

Można wyróżnić wiele zalet mikroserwisów, między innymi:

  • korzystanie z technologii, która dokładnie odzwierciedla potrzeby biznesowe, np. można zastosować inny język programowania, relacyjną lub nierelacyjną bazę danych NoSQL itp.
  • serwisy, które będą tylko czasowo mocno obciążone (np. serwis z raportami), można zreplikować i dzięki narzędziom Load Balancing, równomiernie rozkładać ruch na poszczególne node, przyspieszając fragment systemu
  • podczas wdrażania nowych funkcjonalności do systemu, nie ma potrzeby wyłączania go całego i ponownego uruchamiania, oczekując z nadzieją, że nie pojawią się błędy. Nowy serwis można wdrożyć bez dodatkowych komplikacji

Wracając do pytania: Dlaczego Spring Boot sprzyja rozwojowi systemów IT, opartych na architekturze mikroserwisów? Spring Boot, dzięki prostocie konfiguracji oraz szybkiemu uruchamianiu, bez zbędnych zewnętrznych serwerów aplikacyjnych, może nieustająco dostarczać klientom coraz nowsze funkcjonalności. Nie jesteśmy uwiązani tylko jedną technologią. Nie zatrzymujemy całego systemu, przez co jego współczynnik SLA jest bliski 100%.

Pierwszy projekt w Spring Boot

Czas sprawdzić wiedzę w praktyce. Poniżej znajduje się zarys opracowania nowego projektu – warto zajrzeć do tutoriala przygotowanego przez Spring , w którym krok po kroku omówione zostało tworzenie i uruchamianie aplikacji. Można tam przeczytać o trzech możliwych metodach utworzenia aplikacji opartej na Spring Boot: 

  1. Poprzez stronę udostępnioną przez Spring, na której można skonfigurować projekt. Wystarczy uzupełnić wymagane pola, zaznaczyć z czego będziemy korzystać i kliknąć „Generate Project”. Gotowe! 
  2. Doinstalowanie wtyczki do IDE i opracowanie tamże projektu przy użyciu narzędzia Spring Tool Suite
  3. Wygenerowanie projektu przy pomocy odpowiedniego narzędzia, np. Maven. 

Poniżej został przedstawiony przykład utworzonej aplikacji Spring Boot, z użyciem drugiej metody: 

Rys. 1. Plik pom.xml po wygenerowaniu aplikacji 

Następnie przechodzimy do klasy, która jest odpowiedzialna za uruchomienie naszej aplikacji. 

Rys. 2. Prezentacja klasy DemoApplication 

Na rysunku 2 widać już utworzoną klasę DemoApplication, która posiada adnotacje @SpringBootApplication oraz @RestController. Pierwsza adnotacja zastępuje inne adnotacje, które mają za zadanie uruchomienie automatycznego konfigurowania, skanowania komponentów i dodania dodatkowych klas konfiguracyjnych przy użyciu tylko jednej adnotacji. Dla ułatwienia działań dodano w tej klasie drugą adnotację. Informuje ona o tym, że klasa będzie również kontrolerem. W klasie DemoApplication mamy metodę main, dzięki której możemy uruchomić aplikację. W linijkach 15-18 znajduje się przykład implementacji usługi REST, która zwraca obiekt Message w domyślnym formacie JSON.

Rys. 3 Odpowiedź z usługi

Na rysunku 3 widać wynik z usługi, która dokładnie odwzorowuje przygotowany obiekt. 

Podsumowanie 

Przedstawione powyżej możliwości aplikacji opartej na Spring Boot to niewielki zakres ułatwień dla developerów. Poprawna konfiguracja aplikacji i jej środowiska zostały maksymalnie uproszczone, dzięki czemu nie są potrzebne żadne dodatkowe narzędzia do jej uruchomienia. Jeżeli natomiast pojawia się konieczność dodania kolejnych funkcjonalności, z pomocą przychodzą startery – wystarczy dołączyć odpowiednią bibliotekę od zależności i dopisać adnotację. Gdyby nie powstał projekt Spring Boot, z pewnością ten styl architektury mikroserwisów, nie zostałaby tak szybko doceniony przez środowisko IT z całego świata. 

Jeśli chciałbyś rozwijać się w obszarze Javy lub integracji systemów IT, dołącz do nas!

Nasi eksperci
/ Dzielą się wiedzą

PIM in Marketplace Platform
16.04.2024

Rola systemów PIM na platformach marketplace

E-Commerce

Dobrej jakości, kompletne informacje produktowe pozwalają sprzedawcom w odpowiedni sposób zaprezentować asortyment, a klientom znaleźć dokładnie to, czego szukają. Najpopularniejsze platformy marketplace działają niemalże jak wyszukiwarki, pozwalając konsumentom na zaawansowane filtrowanie ofert za pomocą wielu słów kluczowych i różnych...

11.04.2024

Nowy model cenowy MuleSoft / Niższy próg wejścia 

Integracja systemów

MuleSoft to lider integracji aplikacji i systemów, ułatwiający firmom tworzenie złożonych rozwiązań informatycznych, czerpiącym ze wszystkich dostępnych zasobów informatycznych. Producent oferuje także reużywalne API i konfiguracje umożliwiające proste łączenie zróżnicowanych systemów. Ostatnio MuleSoft wprowadził znaczące zmiany w...

09.04.2024

Recommerce / Znaczenie handlu wtórnego na rynku detalicznym

E-Commerce

W ciągu ostatniego roku lub dwóch recommerce zyskał ogromną popularność. W związku z trudną sytuacją ekonomiczną konsumenci chętnie odsprzedają swoje rzeczy i kupują używane produkty, aby zaoszczędzić pieniądze. To z kolei wpływa na sytuację w sprzedaży bezpośredniej, dodatkowo zachęcając sprzedawców detalicznych do wejścia na rynek...

Ekspercka wiedza
dla Twojego biznesu

Jak widać, przez lata zdobyliśmy ogromną wiedzę - i uwielbiamy się nią dzielić! Porozmawiajmy o tym, jak możemy Ci pomóc.

Napisz do nas

<dialogue.opened>