Lekce 1 - Úvod do Spring Boot frameworku pro Kotlin
V dnešním Spring Boot tutoriálu se seznámíme s nejpoužívanějším a tudíž nejoblíbenějším frameworkem pro tvorbu webových stránek v jazyce Kotlin.
Spring Boot se používá v Javě. A jak už víme z předešlých lekcí, Kotlin je nadstavbou samotné Javy. A proto nemá jediný problém s používáním všeho, co bylo zamýšleno pro Javu.
Dnes si řekneme, proč je Spring tak populární a popíšeme si rozdíl mezi jeho dvěma distribucemi. Řekneme si, jaké technologie budeme používat a také se podíváme, jak funguje výsledná aplikace ve firmách, které framework Spring Boot používají.
Spring a Spring Boot
Nejspíš jste už slyšeli o Javovském frameworku Spring. Lidé si často myslí, že Spring a Spring Boot je úplně to samé, jen se vytvořil Spring jako slangový název. Nejedná se ovšem o totéž!
Spring
Spring jako takový je open-source framework, který byl do povědomí veřejnosti uvolněn v roce 2003 pod licencí Apache. Spring Framework slouží pro jednoduchý vývoj webových aplikací v Javě. Poskytuje nám spoustu funkcí, které nám ulehčí život a několik tisíc řádků kódu.
Tento oblíbený framework lze nasadit ve všech aplikacích tvořených v Javě.
Spring Boot
Spring Boot je nadstavba javovského
Springu. Implementuje z něj veškeré funkce, ale ještě k tomu obsahuje i
něco navíc, například server Tomcat, který naše projekty
zaručeně usnadní.
Hlavní výhodou tohoto frameworku je to, že server nemusíme složitě
nastavovat, vše je totiž vyřešeno za nás. Spring Boot totiž vytvoří
simulaci, která bude vypadat jako existující
připojení.
Spring Boot oblíbený ve firmách, kde je využíván především díky své jednoduchosti.
Aplikace využívající tento framework se tedy vyvíjejí podstatně snáze a rychleji než v samotném Springu. Díky tomu je i Spring Boot vhodný i pro čerstvě začínající programátory webových aplikací, a to zejména díky minimalizaci problémů s konfigurací serveru.
Pokud se naučíme Spring Boot, jsme schopni bez problému ovládat i Spring.
Potřebné znalosti
K tomuto kurzu je nutné znát:
- HTML/CSS jako základní prvek pro tvorbu webových šablon,
- Kotlin na úrovni OOP pro tvorbu logiky našich aplikací,
- Architekturu MVC pro vytvoření webových aplikací.
Potřebné technologie
Pro zprovoznění projektu budeme dále potřebovat:
- IDE IntelliJ IDEA verzi Community,
Pokud jste s IntelliJ IDEA ještě nepracovali, doporučuji nejprve absolvovat předchozí kurzy -> Základy a OOP v Kotlinu, kde najdete základní instrukce, jak s tímto vývojovým prostředím pracovat a kde jej získat. Jedná se o velmi oblíbené a přehledné prostředí.
- JDK 1.8 nebo vyšší (kurz je psán ve verzi 17),
- Gradle, což je mocný nástroj pro automatizované sestavování programu. Ten použijeme pro vložení Spring Boot frameworku do našeho projektu.
- Lombok - tento menší nástroj za nás napíše gettery a settery, na kterých je Spring stavěný,
- Swagger - v něm uvidíme všechny naše dostupné odkazy,
- PostgreSQL - databáze. Databázi si stáhněte z oficiálních stránek.
Frontend a backend
Ve Springu lze vytvářet kompletní fullstackové aplikace (frontend i backend). Tyto termíny ve webových aplikacích znamenají:
- frontend - je ta část webové stránky, kterou vidí uživatel. Jde vlastně o uživatelské rozhraní webové aplikace. Uživatel sem buď zadává vstupní data, nebo naopak získává data výstupní. Nejčastěji se jedná o HTML kód a JavaScript.
- backend - je část stránky, kterou uživatel nevidí. Je to tedy logika celé aplikace, která pracuje například s databází. Jde o kód v Kotlinu, který je na straně serveru, a ke kterému uživatel nemá (nebo by alespoň neměl) mít vůbec žádný přístup.
Ačkoli je ve Springu možnost tvořit plně fullstackové aplikace, většinou se tvoří jen backendová část. Frontendová část se připojuje převážně přes nějaký jiný javascriptový framework jako jsou například Angular, React a nebo Vue.
MVC a Dependency Injection
Představíme si MVC architekturu a návrhový vzor Dependency injection.
Model-View-Controller (MVC)
Spring Boot je postavený na MVC architektuře. MVC nám
rozděluje aplikace do 3 vrstev (Model -
View - Controller), což zvyšuje její
přehlednost a zrychluje orientaci
programátora v kódu převážně u větších aplikací. Hlavně ale odděluje
logickou část aplikace od té prezentační.
Prostředníkem je právě Controller
, který obě vrstvy
propojuje.
Dependency injection
Dependency injection je návrhový vzor pro předávání závislosti mezi jednotlivými objekty.
A právě obrovskou výhodou Springu je, že má v sobě integrovaný návrhový vzor Dependency Injection. Jedná se o způsob, kterým si jakýkoliv objekt požádá o další objekty, které potřebuje ke své činnosti a na kterých je závislý. Potom může náš objekt využívat služby ostatních objektů.
Dependency Injection (někdy taky zkráceně DI nebo DI kontejner) pracuje minimálně se třemi objekty:
- objekt, který služby požaduje,
- zprostředkovatel, označený termínem Provider,
- poskytovatel služeb představující objekt, jehož služby chce náš objekt k vykonání činnosti použít.
Obrovské množství výhod má Spring Boot v jednoduchosti kódu, jelikož obsahuje spoustu menších knihoven, které usnadní práci s objekty a komunikaci s frontendem. Potkáme je dále v kurzu.
V příští lekci, Vytvoření Spring Boot projektu v Kotlinu, si založíme první projekt. Seznámíme se s prostředím a funkcí webové stránky.