1. diel - Úvod do Spring Boot frameworku pre Kotlin
V dnešnom Spring Boot tutoriále sa zoznámime s najpoužívanejším a teda najobľúbenejším frameworkom pre tvorbu webových stránok v jazyku Kotlin.
Spring Boot sa používa v Jave. A ako už vieme z predošlých lekcií, Kotlin je nadstavbou samotnej Javy. A preto nemá jediný problém s používaním všetkého, čo bolo zamýšľané pre Javu.
Dnes si povieme, prečo je Spring tak populárny a popíšeme si rozdiel medzi jeho dvoma distribúciami. Povieme si, aké technológie budeme používať a tiež sa pozrieme, ako funguje výsledná aplikácia vo firmách, ktoré framework Spring Boot používajú.
Spring a Spring Boot
Zrejme ste už počuli o Javovskom frameworku Spring. Ľudia si často myslia, že Spring a Spring Boot je úplne to isté, len sa vytvoril Spring ako slangový názov. Nejedná sa však o to isté!Spring
.<>Spring ako taký je open-source framework, ktorý bol do povedomia verejnosti uvoľnený v roku 2003 pod licenciou Apache. Spring Framework slúži na jednoduchý vývoj webových aplikácií v Jave. Poskytuje nám množstvo funkcií, ktoré nám uľahčia život a niekoľko tisíc riadkov kódu.
Tento obľúbený framework je možné nasadiť vo všetkých aplikáciách tvorených v Jave.
Spring Boot
.<>Spring Boot je nadstavba javovského
Springu. Implementuje z neho všetky funkcie, ale ešte k tomu obsahuje aj
niečo navyše, napríklad server Tomcat, ktorý naše projekty
zaručene uľahčí.
Hlavnou výhodou tohto frameworku je to, že server nemusíme zložito
nastavovať, všetko je totiž vyriešené za nás. Spring Boot totiž vytvorí
simuláciu, ktorá bude vyzerať ako existujúce
pripojenie.
Spring Boot obľúbený vo firmách, kde je využívaný predovšetkým vďaka svojej jednoduchosti.
Aplikácie využívajúce tento framework sa teda vyvíjajú podstatne ľahšie a rýchlejšie ako v samotnom Springu. Vďaka tomu je aj Spring Boot vhodný aj pre čerstvo začínajúcich programátorov webových aplikácií, a to najmä vďaka minimalizácii problémov s konfiguráciou servera.
Pokiaľ sa naučíme Spring Boot, sme schopní bez problému ovládať aj Spring.
Potrebné znalosti
K tomuto kurzu je nutné poznať:- HTML/CSS ako základný prvok pre tvorbu webových šablón,
- Kotlín na úrovni OOP pre tvorbu logiky našich aplikácií,
- Architektúru MVC na vytvorenie webových aplikácií.
Potrebné technológie
Na sprevádzkovanie projektu budeme ďalej potrebovať:- IDE IntelliJ IDEA verziu Community,
Pokiaľ ste s IntelliJ IDEA ešte nepracovali, odporúčam najprv absolvovať predchádzajúce kurzy -> Základy a OOP v Kotline, kde nájdete základné inštrukcie, ako s týmto vývojovým prostredím pracovať a kde ho získať. Ide o veľmi obľúbené a prehľadné prostredie.
- JDK 1.8 alebo vyšší (kurz je písaný vo verzii 17),
- technológiu Gradle, čo je mocný nástroj pre automatizované zostavovanie programu. Ten použijeme na vloženie Spring Boot frameworku do nášho projektu.
Frontend a backend
V Springu je možné vytvárať kompletné fullstackové aplikácie (frontend aj backend). Tieto termíny vo webových aplikáciách znamenajú:- frontend - je tá časť webovej stránky, ktorú vidí používateľ. Ide vlastne o používateľské rozhranie webovej aplikácie. Užívateľ sem buď zadáva vstupné dáta, alebo naopak získava dáta výstupné. Najčastejšie sa jedná o HTML kód a JavaScript.
JavaScript sa užívateľovi zo servera posiela, aby videl výslednú webovú stránku, ktorá je navyše interaktívna.
- backend - je časť stránky, ktorú používateľ nevidí. Je to teda logika celej aplikácie, ktorá pracuje napríklad s databázou. Ide o kód v Kotline, ktorý je na strane servera, a ku ktorému používateľ nemá (alebo by aspoň nemal) mať vôbec žiadny prístup.
Hoci je v Springu možnosť tvoriť plne fullstackové aplikácie, väčšinou sa tvorí iba backendová časť. Frontendová časť sa pripája prevažne cez nejaký iný Javascriptový framework ako sú napríklad Angular, React alebo Vue.
MVC a Dependency Injection
Predstavíme si MVC architektúru a návrhový vzor Dependency injection.Model-View-Controller (MVC)
Spring Boot je postavený na MVC architektúre. MVC nám rozdeľuje aplikácie do 3 vrstiev (M odel - V iew - C ontroller), čo zvyšuje jej prehľadnosť a zrýchľuje orientáciu programátora v kóde prevažne pri väčších aplikáciách. Hlavne ale oddeľuje logickú časť aplikácie od tej prezentačnej. Prostredníkom je práveController
, ktorý obe vrstvy prepája.
Dependency injection
Dependency injection je návrhový vzor na odovzdávanie závislosti medzi jednotlivými objektmi.A práve obrovskou výhodou Springu je, že má v sebe integrovaný návrhový vzor Dependency Injection. Ide o spôsob, ktorým si akýkoľvek objekt požiada o ďalšie objekty, ktoré potrebuje k svojej činnosti a na ktorých je závislý. Potom môže náš objekt využívať služby ostatných objektov.
D ependency I njection (niekedy tiež skrátene DI alebo DI kontajner) pracuje minimálne s tromi objektmi:
- objekt, ktorý služby požaduje,
- sprostredkovateľ, označený termínom Provider,
- poskytovateľ služieb predstavujúci objekt, ktorého služby chce náš objekt na vykonanie činnosti použiť.
Obrovské množstvo výhod má Spring Boot v jednoduchosti kódu, pretože obsahuje množstvo menších knižníc, ktoré uľahčia prácu s objektmi a komunikáciu s frontendom. Stretneme ich ďalej v kurze.
V budúcej lekcii, Vytvorenie Spring Boot projektu v Kotline , si založíme prvý projekt. Zoznámime sa s prostredím a funkciou webovej stránky.