Vydělávej až 160.000 Kč měsíčně! Akreditované rekvalifikační kurzy s garancí práce od 0 Kč. Více informací.
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.

1. diel - Úvod do Spring Boot frameworku pre Javu

Vitajte u prvej lekcie kurzu o javový frameworku Spring Boot, ktorý je súčasne najpoužívanejší framework pre tvorbu webových stránok v Jave. Dnes si vysvetlíme, prečo je Spring tak populárne a rozdiel medzi jeho dvoma distribúciami. Povieme si, aké technológie budeme používať a tiež sa pozrieme, ako funguje výsledná aplikácie vo firmách, ktoré Spring Boot používajú.

Spring vs. Spring Boot

Pravdepodobne ste počuli o Java frameworku Spring. Ľudia si často myslia, že Spring a Spring Boot je úplne to isté, len sa vytvoril "Spring" ako kratší názov. Nejedná sa však o to isté.

Spring

Spring ako taký je framework, ktorý slúži pre jednoduchý vývoj webových aplikácií v Jave. Poskytuje nám veľa funkcií, ktoré nám uľahčia život a niekoľko tisíc riadkov kódu.

Spring Boot

Spring Boot logo - Spring Boot

Spring Boot je nadstavba Spring. Implementuje teda všetky funkcie Spring, ale ešte k tomu nám poskytuje jednu veľkú funkciu navyše, ktorá nám tvorbu projektu veľmi zrýchli a uľahčí. Spring Boot má totiž v sebe server Tomcat, ktorý nám pri spustení projektu vytvorí server, ktorý nastaví prístupný pre prehliadače.

Rozdiel je teda v tom, že len vo Spring by sme museli nastavovať server sami, zatiaľ čo Spring Boot ho za nás nastaví. Opäť ušetríme pár vytrhaných vlasov, nejaký ten čas, nervy a tiež riadky kódu:)

Väčšinou sa využíva Spring Boot aj vo firmách, pretože Spring ako taký je moc zložitý na vôbec základnej spustenie projektu. Okrem väčšieho objemu dát nás nečaká žiadna nevýhoda pri zvolení Spring Boot namiesto Spring, takže si myslím, že voľba je jasná.

Navyše, ak sa naučíte Spring Boot a nastúpite do firmy, kde sa používa Spring, budete ho schopní bez problému ovládať.

Potrebné znalosti

Tento kurz predpokladá aspoň základné znalosti:

  • HTML / CSS - Budeme tvoriť základné webové šablóny.
  • JavaScriptu - V druhej časti kurzu budeme tvoriť API server, s ktorým budeme následne komunikovať z JavaScriptu.
  • Objektovo orientovaného programovania v Jave - Java je objektovo orientovaný jazyk, každá aplikácia v Jave využíva OOP. Spring Boot aplikácie nie sú výnimkou. Ak ešte neviete, čo je OOP, stačí si prečítať Java OOP kurz.

Frontend a backend

Vo Spring možné vytvoriť fullstack stránku (teda ako frontend, tak backend). Tieto termíny vo webových aplikáciách označujú:

  • backend - Časť webu či aplikácie, ktorá sa stará o to, ako daná vec funguje. Robí logické operácie, pracuje so súbormi a databáz. Užívateľ by k backendu nemal mať prístup a jeho zdrojový kód v Jave je uložený na serveri niekde v serverovni.
  • frontend - Naopak frontend je tá časť, ku ktorej používateľ mať prístup musí, pretože to je presne to, čo vidí. Frontend sa stará o vizualizáciu dát, ktoré mu pre užívateľov odovzdá backend. Jedná sa najmä o HTML kód a JavaScript, ktorý sa užívateľovi zo servera posiela, aby videl výslednú webovú stránku a bola interaktívne. Frontend zároveň získava od užívateľa požiadavky a dáta, ktoré odovzdáva backend.

Hoci je to teda možné, Spring Boot sa väčšinou nevyužíva na fullstack aplikácie (frontend + backend), ale tvorí sa v ňom iba serverová časť (backend). Na ten sa potom pripája frontend cez nejaký javascriptový framework, ako je napr. Angular alebo React. My si ale samozrejme ukážeme oba varianty - teda ako urobiť kompletnú webovú aplikáciu vo Spring Boot aj tak v ňom vytvoriť len API server pre javascriptového klienta. Ak vám to znie zatiaľ komplikovane, až sa pozrieme do výsledného kódu, veľa vecí sa vyjasní:)

MVC

Spring Boot je postavený na MVC architektúre. To znamená, že aplikáciu rozdeľuje do 3 vrstiev a tým je prehľadná a jednoducho rozšíriteľná. Túto architektúru si predstavíme ďalej v kurze v samostatnej lekcii, pretože sa všetko točí práve okolo nej.

Dependency Injection

Možno tento návrhový vzor už poznáte alebo ste sa v praxi už stretli s problémami s odovzdávaním závislosťou. Výhodou Spring je, že má zabudovanú dependency injection. To je spôsob, ako si objekt povie o ďalšie objekty, ktoré k svojej činnosti potrebuje a je na nich teda závislý (anglicky "depends", preto "dependency"). Opäť sa nenechajte zo začiatku zmiasť, akonáhle sa dostaneme do reálneho kódu, bude všetko jasné, pretože sa o nič zložité nejde.

Nespočet ďalších výhod má pre nás Spring v jednoduchosti kódu. Má veľa menších knižníc, ktoré nám uľahčia prácu s objektmi a komunikáciu s frontend. Stretneme je ďalej v kurze.

Čo budeme používať?

Pracovať budeme s nasledujúcimi technológiami:

  • Maven - Ide o nástroj, ktorý zjednodušene povedané uľahčuje prácu so závislosťami na ostatných projektoch. Budeme tým riešiť vloženie SPRING do nášho projektu a potom ďalších pár vecí.
  • Lombok - Tento menší nástroj nie je úplne potrebné, ale opäť nám to uľahčí prácu. Spring je totiž stavaný na Getter a setter. Museli by sme ich písať sami, ale Lombok to urobí za nás.
  • PostgreSQL - Toto je databáza, s ktorou bude Spring komunikovať. Môžeme použiť samozrejme aj MySQL, len bude potrebné pozmeniť nastavenie. K tomu si samozrejme všetko povieme. Databázu PostgreSQL si môžete rovno stiahnuť tu.
  • Swagger - Základná webové rozhranie pre našu aplikáciu, ak je napísaná ako API server (teda len ako backend). Tu uvidíme všetky naše dostupné "odkazy". Swagger nie je nutné sťahovať, dáme ho do Maven.
  • IDE - nezáleží na tom, aké IDE použijete. Ale ak chcete úplne presne nasledovať ma, ja používam IntelliJ Idea, ktorá je dostupná zadarmo tu. Odporúčam tvoriť aplikáciu práve v nej.

V ďalšej lekcii, Vytvorenie Spring Boot projektu v Jave , sa pozrieme ako si založiť projekt, ako dať Spring do Maven a čo to vôbec Maven je. Tiež si nainštalujeme Lombok, ktorý nám pomôže s Getter a setter. A dostaneme sa do fázy, kedy si tiež projekt spustíme.


 

Všetky články v sekcii
Spring Boot
Preskočiť článok
(neodporúčame)
Vytvorenie Spring Boot projektu v Jave
Článok pre vás napísal Tomáš Střecha
Avatar
Užívateľské hodnotenie:
7 hlasov
Autor se věnuje tvorbě backend webových aplikací v Javovém frameworku Spring boot, grafickému vykreslování v C++ společně s pomocí OpenGL.
Aktivity