Aktuálně: Postihly zákazy tvou profesi? Poptávka po ajťácích prudce roste, využij slevové akce 30% výuky zdarma!
Swift týden

Lekce 1 - Úvod do Spring Boot frameworku pro Javu

Vítejte u první lekce kurzu o javovém frameworku Spring Boot, který je současně nejpoužívanější framework pro tvorbu webových stránek v Javě. Dnes si vysvětlíme, proč je Spring tak populární a 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é Spring Boot používají.

Spring vs. Spring Boot

Pravděpodobně jste slyšeli o Java frameworku Spring. Lidé si často myslí, že Spring a Spring Boot je úplně to samé, jen se vytvořil "Spring" jako kratší název. Nejedná se ovšem o totéž.

Spring

Spring jako takový je framework, který 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.

Spring Boot

Spring Boot logo

Spring Boot je nadstavba Springu. Implementuje tedy veškeré funkce Springu, ale ještě k tomu nám poskytuje jednu velkou funkci navíc, která nám tvorbu projektu velice zrychlí a usnadní. Spring Boot má totiž v sobě server Tomcat, který nám při spuštění projektu vytvoří server, který nastaví přístupný pro prohlížeče.

Tento výukový obsah pomáhají rozvíjet následující firmy, které dost možná hledají právě tebe!

Rozdíl je tedy v tom, že jen ve Springu bychom museli nastavovat server sami, zatímco Spring Boot ho za nás nastaví. Opět ušetříme pár vytrhaných vlasů, nějaký ten čas, nervy a také řádky kódu :)

Většinou se využívá Spring Boot i ve firmách, jelikož Spring jako takový je moc složitý na vůbec základní spuštění projektu. Kromě většího objemu dat nás nečeká žádná nevýhoda při zvolení Spring Boot namísto Spring, takže si myslím, že volba je jasná.

Navíc, pokud se naučíte Spring Boot a nastoupíte do firmy, kde se používá Spring, budete jej schopní bez problému ovládat.

Potřebné znalosti

Tento kurz předpokládá alespoň základní znalosti:

  • HTML/CSS - Budeme tvořit základní webové šablony.
  • JavaScriptu - V druhé části kurzu budeme tvořit API server, se kterým budeme následně komunikovat z JavaScriptu.
  • Objektově orientovaného programování v Javě - Java je objektově orientovaný jazyk, každá aplikace v Javě využívá OOP. Spring Boot aplikace nejsou výjimkou. Pokud ještě nevíte, co je OOP, stačí si přečíst Java OOP kurz.

Frontend a backend

Ve Spring lze vytvořit fullstack stránku (tedy jak frontend, tak backend). Tyto termíny ve webových aplikacích označují:

  • backend - Část webu či aplikace, která se stará o to, jak daná věc funguje. Dělá logické operace, pracuje se soubory a databází. Uživatel by k backendu neměl mít přístup a jeho zdrojový kód v Javě je uložený na serveru někde v serverovně.
  • frontend - Naopak frontend je ta část, ke které uživatel mít přístup musí, jelikož to je přesně to, co vidí. Frontend se stará o vizualizaci dat, které mu pro uživatele předá backend. Jedná se zejména o HTML kód a JavaScript, který se uživateli ze serveru posílá, aby viděl výslednou webovou stránku a byla interaktivní. Frontend zároveň získává od uživatele požadavky a data, která předává backendu.

Ačkoli je to tedy možné, Spring Boot se většinou nevyužívá na fullstack aplikace (frontend + backend), ale tvoří se v něm pouze serverová část (backend). Na ten se poté připojuje frontend přes nějaký javascriptový framework, jako je např. Angular nebo React. My si ale samozřejmě ukážeme obě varianty - tedy jak udělat kompletní webovou aplikaci ve Spring Boot i jak v něm vytvořit jen API server pro javascriptového klienta. Pokud vám to zní zatím komplikovaně, až se podíváme do výsledného kódu, spousta věcí se vyjasní :)

MVC

Spring Boot je postavený na MVC architektuře. To znamená, že aplikaci rozděluje do 3 vrstev a tím je přehledná a jednoduše rozšiřitelná. Tuto architekturu si představíme dále v kurzu v samostatné lekci, jelikož se vše točí právě kolem ní.

Dependency Injection

Možná tento návrhový vzor již znáte nebo jste se v praxi již setkali s problémy s předáváním závislostí. Výhodou Springu je, že má zabudovanou dependency injection. To je způsob, jak si objekt řekne o další objekty, které ke své činnosti potřebuje a je na nich tedy závislý (anglicky "depends", proto "dependency"). Opět se nenechte ze začátku zmást, jakmile se dostaneme do reálného kódu, bude vše jasné, protože se o nic složitého nejedná.

Nespočet dalších výhod má pro nás Spring v jednoduchosti kódu. Má spoustu menších knihoven, které nám usnadní práci s objekty a komunikaci s frontendem. Potkáme je dále v kurzu.

Co budeme používat?

Pracovat budeme s následujícími technologiemi:

  • Maven – Jedná se o nástroj, který zjednodušeně řečeno usnadňuje práci se závislostmi na ostatních projektech. Budeme tím řešit vložení Springu do našeho projektu a poté dalších pár věcí.
  • Lombok – Tento menší nástroj není úplně potřeba, ale opět nám to usnadní práci. Spring je totiž stavěný na getterech a setterech. Museli bychom je psát sami, ale Lombok to udělá za nás.
  • PostgreSQL – Toto je databáze, se kterou bude Spring komunikovat. Můžeme použít samozřejmě i MySQL, jen bude potřeba pozměnit nastavení. K tomu si samozřejmě vše řekneme. Databázi PostgreSQL si můžete rovnou stáhnout zde.
  • Swagger – Základní webové rozhraní pro naši aplikaci, pokud je napsaná jako API server (tedy jen jako backend). Zde uvidíme všechny naše dostupné "odkazy". Swagger není nutné stahovat, dáme jej do Mavenu.
  • IDE – Je jedno, jaké IDE použijete. Ale pokud chcete úplně přesně následovat mě, já používám IntelliJ Idea, která je dostupná zadarmo zde. Doporučuji tvořit aplikaci právě v ní.

V další lekci, Vytvoření Spring Boot projektu v Javě, se podíváme jak si založit projekt, jak dát Spring do Mavenu a co to vůbec Maven je. Také si nainstalujeme Lombok, který nám pomůže s gettery a settery. A dostaneme se do fáze, kdy si také projekt spustíme.


 

Všechny články v sekci
Spring Boot
Článek pro vás napsal Tomáš Střecha
Avatar
Jak se ti líbí článek?
5 hlasů
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 (3)

 

 

Komentáře

Avatar
Lubor Pešek
Člen
Avatar
Lubor Pešek:15. května 11:53

Máš tam překlepy, ale to je v pohodě. Ale jedna drobnost. Píšeš, že SB vytvoří připojení za nás. Takhle řečeno to může být zavádějící, protože se ti tu vynoří spousta otázek od nováčků, proč tedy vůbec používat Spring jako takový.

Měl bys to upřesnit - Spring boot nasimuluje prostředí tak, že se bude tvářit, že veškerá připojení existují, ale není to plnohodnotné připojení jako takové.

Odpovědět
15. května 11:53
Existují dva způsoby, jak vyřešit problém. Za prvé vyhoďte počítač z okna. Za druhé vyhoďte okna z počítače.
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 1 zpráv z 1.