Co je Spring Boot?
Java Spring Boot je opensourcový nástroj, který usnadňuje vytváření mikroslužeb a webových aplikací pomocí frameworků založených na jazyce Java. Jakákoli definice modulu Spring Boot musí začít u jazyka Java – jednoho z nejoblíbenějších a nejrozšířenějších vývojářských jazyků a platforem pro vývoj aplikací. Vývojáři z celého světa začínají kariéru programátorů tím, že se učí jazyk Java. Java je flexibilní a uživatelsky přívětivá a vývojáři si ji oblíbili pro celou řadu aplikací – od aplikací pro sociální média, webových a herních aplikací až po síťové a podnikové aplikace.
Java a framework Spring
Ačkoli se Java používá snadno a je snazší se ji naučit než jiné jazyky, úroveň složitosti vytváření, ladění a nasazování aplikací v Javě se vyšplhala do závratných výšin. Příčinou je velký počet proměnných, který exponenciálně roste a se kterým se moderní vývojáři musí vypořádat při vývoji webových nebo mobilních aplikací pro běžné moderní technologie, jako je streamování hudby nebo aplikace na mobilní platby. Vývojář, který píše základní obchodní aplikaci, musí pracovat s mnoha knihovnami, moduly plug-in, dále s knihovnami na protokolování chyb a zpracování, integracemi do webových služeb a s různými jazyky, jako je C#, Java, HTML apod. Proto je pochopitelné, že roste poptávka po nástrojích, které by vývoj aplikací v Javě zjednodušily a ušetřily vývojářům čas a peníze.
Seznamte se s aplikačními frameworky – velkými částmi předem napsaného kódu, které můžou vývojáři podle potřeby používat a přidávat do vlastního kódu. Tyto frameworky ulehčují práci vývojářů prakticky ve všem – ať se jedná o vývoj mobilních a webových aplikací, nebo práci s desktopy a rozhraními API. Díky aplikačním frameworkům je vytváření aplikací rychlejší, jednodušší a bezpečnější. Nabízí opakovaně využitelný kód a nástroje, které pomáhají spojovat všechny prvky projektu při vývoji softwaru.
A tady přichází na řadu Spring: Spring je opensourcový projekt, který nabízí jednodušší, modulární přístup k vytváření aplikací v jazyce Java. Řada projektů Spring začala v roce 2003 jako reakce na složitý počáteční vývoj v jazyce Java a nabízí podporu při vývoji aplikací Java. Samotný název Spring obvykle označuje buď samotný aplikační framework, nebo celou skupinu projektů neboli modulů. Java Spring Boot je jeden konkrétní modul, který je vytvořený jako rozšíření frameworku Spring.
Když jsme si řekli, jak framework Spring, Spring Boot a jazyk Java fungují dohromady, definujeme si Spring Boot – nástroj, který zjednodušuje a urychluje vývoj webových aplikací a mikroslužeb na frameworku jazyka Java, což je Spring.
Vzhledem k tomu, že jazyk nebo platforma je Java, někdy se označuje jako "Java Spring Boot," "framework Java Spring" nebo "framework Spring Boot." Existují ale i jiné frameworky třetích stran pro jazyk Java, jako je Play nebo Hibernate, a proto je přesnější používat označení "Spring" a "Spring Boot."
Pokud potřebujete základní informace o jazyce Java, přečtěte si článek Co je Java?
Jaký je rozdíl mezi řešeními Spring a Spring Boot?
Jak už bylo zmíněno, Spring je opensourcový aplikační framework založený na jazyce Java, který zahrnuje mnoho menších projektů. Mezi další oblíbené projekty Spring patří například Spring Data, Spring Cloud a Spring Security. K pochopení rozdílu mezi modulem Spring Boot a frameworkem Spring je důležité si uvědomit, že i když existuje mnoho rozdílů v základních funkcích, jedná se vždy o řadu Spring.
K úplnému pochopení rozdílů mezi řešeními Spring a Spring Boot je potřeba si nejprve definovat několik klíčových výrazů.
Co jsou to mikroslužby?
Co je injektáž závislostí
Injektáž závislostí (DI) je technika návrhu, která se používá k inverzi řízení (IoC). V objektově orientovaném programování, jako je programování v Javě, se objekty, které závisejí na jiných objektech, označují jako závislosti. Přijímající nebo závislý objekt se obvykle označuje jako klient a druhý objekt, na kterém klient závisí, se nazývá služba. Při injektáži závislostí dochází k předání služby klientovi – probíhá „injektáž“ závislosti pomocí kódu nazývaného injektor. Při injektáži závislostí klient nemusí zadávat, jakou službu použít, protože to za něj udělá injektor.
Co znamená, že konvence mají přednost před konfigurací?
Principu přednosti konvencí před konfigurací se také někdy říká programování podle konvencí. Používá se v aplikačních frameworcích ke snížení počtu rozhodnutí učiněných vývojářem. Vychází z principu „neopakovat sebe sama“, abyste se vyhnuli psaní redundantního kódu. Při psaní kódu podle konvencí je důležité zachovat flexibilitu a současně vývojáři umožnit, aby psal kód jen pro neobvyklé části vytvářené aplikace. Pokud požadované chování aplikace odpovídá zavedeným konvencím, poběží aplikace automaticky i bez psaní konfiguračních souborů. Vývojář bude muset výslovně napsat konfigurační soubory, jen když se požadované chování odchyluje od „konvence“.
Framework Spring vs. Spring Boot
Spring | Spring Boot | |
---|---|---|
Co je to? | Opensourcový framework webových aplikací založený na Javě | Rozšíření nebo modul založený na frameworku Spring |
Co dělá? | Nabízí flexibilní, plně konfigurovatelné prostředí, které využívá nástroje a knihovny předem připraveného kódu, aby bylo možné vytvářet vlastní, volně propojené webové aplikace. | Umožňuje vytvářet samostatné aplikace Spring, které můžete spouštět hned bez nutnosti psaní poznámek, konfigurace XML a psaní spousty dalšího kódu. |
Kde se má použít? | Spring použijte, když chcete:
| Spring Boot použijte, když chcete:
|
Jaká je klíčová funkce? | Injektáž závislostí | Automatická konfigurace |
Obsahuje vložené servery? | Ne. Ve frameworku Spring je potřeba servery explicitně nastavit. | Ano, Spring Boot je dodáván s integrovaným servery HTTP, jako je Tomcat a Jetty. |
Jak probíhá konfigurace? | Framework Spring nabízí flexibilitu, ale konfigurovat ho musíte ručně. | Spring Boot konfiguruje Spring a další frameworky třetích stran automaticky podle výchozího principu, který se dá charakterizovat jako „přednost konvencí před konfigurací“. |
Potřebuji umět pracovat s XML? | Ve frameworku Spring je potřeba umět konfigurovat XML. | Spring Boot nevyžaduje konfiguraci XML. |
Existují nástroje CLI pro vývoj/testování aplikací? | Framework Spring sám o sobě nenabízí nástroje CLI pro vývoj a testování aplikací. | Spring Boot je modul ve frameworku Spring, který obsahuje nástroj CLI pro vývoj a testování aplikací založených na frameworku Spring. |
Vychází z konkretizovaného nebo nekonkretizovaného přístupu? | Nekonkretizovaný* | Konkretizovaný* |
**Konkretizovaný vs. nekonkretizovaný přístup k frameworku
I když se může zdát, že výraz „konkretizovaný“ zní zvláštně, mají obě možnosti, tzn. konkretizovaný přístup modulu Spring Boot i nekonkretizovaný přístup frameworku Spring, své výhody.
Konkretizovaný přístup
Konkretizovaný přístup vychází z názoru, že existuje jeden způsob, který je výrazně jednodušší než všechny ostatní. Z principu návrhu pak software omezuje návrháře a nabízí jim předepsaný způsob, jak by měli věci dělat.
Nabízí schůdnou cestu a osvědčený postup, který funguje většině lidí ve většině situací. Aplikace je napsaná tak, aby se co nejvíce držela těchto osvědčených postupů a uznávaných konvencí. Konkretizovaný přístup výrazně usnadňuje spolupráci a pomáhá při psaní kódu projektu. Ostatní vývojáři, kteří mají s tímto frameworkem zkušenosti, se s novou aplikací rychle seznámí a můžou hned začít pracovat.
Nekonkretizovaný přístup
Nekonkretizovaný přístup se použije, pokud všechna řešení vyžadují zhruba stejné úsilí nebo jsou stejně složitá. Vychází z předpokladu, že neexistuje jediný správný způsob řešení daného problému. Místo toho nabízí flexibilní nástroje, které je možné použít k řešení problémů mnoha různými způsoby. Nekonkretizované frameworky mají výhodu, že nabízí větší flexibilitu při vývoji a dávají vývojářům větší kontrolu. Naopak hlavní nevýhodou této flexibility je, že vývojář se musí více rozhodovat a nakonec možná bude muset napsat více kódu, protože framework je hodně otevřený a obecný.
Funkce a výhody modulu Spring Boot
To nejlepší nakonec: Jsou to funkce modulu Java Spring Boot, které nabízí nad rámec frameworku Spring. Spring Boot nabízí snadnější a rychlejší nastavení, konfiguraci a spouštění aplikací. Eliminuje potíže spojené s konfigurací, která je potřeba k nastavení většiny aplikací založených na frameworku Spring. Vývojáři mohou rovnou začít používat Spring Boot, aniž by se museli učit původní framework Spring.
Tady je postup, jak funkce modulu Spring Boot zjednodušují úkoly při programování v jazyce Java. Některé klíčové funkce modulu Spring Boot:
-
Samostatné aplikace – Spring Boot pomáhá vytvářet aplikace, které nejsou vázány na určitou platformu a je možné je spustit místně na zařízení, které není připojeno k internetu. Dále tyto aplikace nevyžadují, aby byly funkční další nainstalované služby.
-
Vložené servery – Spring Boot umožňuje přímo vkládat servery, jako je Tomcat, Jetty nebo Undertow.
-
Konkretizovaný přístup – Spring Boot usnadňuje konfiguraci buildu tím, že nabízí konkrétní počáteční závislosti.
-
Automatická konfigurace – Spring Boot automaticky nakonfiguruje Spring a další knihovny třetích stran, kdykoli to bude možné.
-
Funkce připravené pro produkční prostředí – Spring Boot nabízí funkce, které jsou připraveny pro produkční prostředí. Jde o různé metriky, kontroly stavu a externí konfiguraci.
Výhody modulu Spring Boot
Spring Boot:
-
Kratší doba vývoje a vyšší produktivita – Spring Boot výrazně usnadňuje vývoj aplikací založených na platformě Spring v jazyce Java. Konkretizovaný přístup k frameworku Spring zkracuje dobu potřebnou k rozhodování a opakovaným úkolům a šetří váš čas, abyste se mohli soustředit na vytváření a testování aplikací.
-
Menší potřeba psát často používaný kód, poznámky a konfigurovat XML – vývojáři, pokud nechtějí, nemusejí generovat kód, konfigurovat XML, ani se učit framework Spring.
-
Integruje aplikace do rodiny projektů Spring – aplikace Spring Boot se dají bez problémů integrovat do jiných projektů v ekosystému frameworku Spring, jako je Spring Data, Spring Cloud, Spring Security, a také do jiných důvěryhodných cloudových služeb, jako je Microsoft Azure Spring Cloud.
-
Poskytuje nástroje pro vývoj/testování – díky nástroji CLI a vloženým serverům HTTP modulu Spring Boot můžete velice snadno vytvářet prostředí pro vývoj/testování aplikací založených na platformě Spring.
-
Nabízí moduly plug-in a nástroje pro snadnější vývoj – Spring Boot nabízí moduly plug-in pro práci s databázemi v paměti. Nabízí také další oblíbené nástroje na automatizaci sestavení, jako je Apache Maven.
Java Spring Boot – kurzy
Pokud máte zkušenosti s vytvářením aplikací ve frameworku Spring, pravděpodobně se snadno naučíte i Spring Boot podle kurzů, zahájení projektů a dokumentace, které jsou v tomto oddílu. Pro ty z vás, kteří na použití modulu Spring Boot spěchají, ale framework zatím neznají, je tu jedna dobrá zpráva: Modul Spring Boot se můžete naučit a začít s ním pracovat před tím, než se naučíte Spring, protože řadu základních principů frameworku se naučíte za pochodu. I když se nenaučíte všechno, co o tomto frameworku potřebujete vědět, získáte dostatečný základ, pokud se rozhodnete naučit se ho později.
Další výhodou, když se naučíte Spring Boot, je, že kromě mnohem rychlejšího a efektivnějšího vývoje aplikací, budete moci používat funkce platformy Spring, jako je Spring Data, Project Reactor a Spring Security.
Injektáž závislostí
- Je založená na XML, tzn. <beans/> a <namespace:*/>.
- Je založená na automatizaci, například @Component, @Autowired, @Inject.
- Založená na jazyce Java, například třídy @Configuration, metody @Bean.
Inverze řízení (IoC)
- ApplicationContext – kořenové rozhraní, které slouží jako kontejner IoC pro Spring
- BeanFactory – rozhraní pro přístup ke kontejneru Spring
- Objekty bean – objekty vytvořené, sestavené a spravované pomocí ApplicationContext
Java Spring Boot – kurzy pro začátečníky
Vytvoření aplikace Java a pomoc s jejím zabezpečením
K vytvoření aplikace Java nástrojem Spring Initializr použijte Spring Boot Starter pro Microsoft Entra ID (dříve Azure Active Directory).
Nasazení první aplikace do služby Azure Spring Cloud
Naučte se vytvářet, zřizovat a monitorovat jednoduchou aplikaci Spring Boot vytvořenou nástrojem Spring Initializr.
Vytvoření jednoduché mikroslužby Spring Boot
Vytvořte a nasaďte jednoduchou mikroslužbu a pak se do ní naučte přidávat technologie Spring Cloud.
Další úvodní sady Spring Boot
Přidejte do aplikací Spring Boot funkce úložiště, zabezpečení, ověřování a trezoru klíčů.
Nejčastější dotazy
-
Spring Boot je opensourcový webový framework jazyka Java, který je založený na mikroslužbách a nabízí ho společnost Spring. Ocení ho hlavně softwaroví inženýři, kteří vyvíjejí webové aplikace a mikroslužby.
-
"Spring Boot v jazyce Java" je jen jiný výraz pro "Java Spring Boot". Oba výrazy jsou zaměnitelné. Java je jazyk a platforma. Spring je aplikační framework založený na jazyce Java a Spring Boot je rozšíření frameworku Spring s některými dalšími výhodami.
-
Spring Boot má funkce obecného frameworku Spring, ale nevyžaduje, abyste uměli Spring. Vývojář může aplikaci rychle zprovoznit v kratší době, protože atributy Spring Boot jsou automaticky nakonfigurované. Konkretizovaný přístup odebírá většinu často používaného kódu a konfigurace potřebné k vývoji a nasazení aplikace Spring.
-
Ano, jak bylo uvedeno výše, Spring Boot je obzvláště užitečný pro mikroservisní přístup k architektuře vývoje softwaru. Mikroslužby jsou oblíbeným způsobem, jak vytvořit malé, autonomní týmy, které mohou pracovat nezávisle a ze své podstaty mikroslužby fungují pouze v back-endu.
-
Kratší doba vývoje, větší produktivita a snadnější použití – to jsou jen některé výhody vývoje aplikací v modulu Spring Boot.
-
Řada kurzů, rychlé starty a dokumentace je na webu Spring a dále v úvodních sadách Spring Boot a příslušné dokumentaci k Microsoft Azure. Pokud chcete rovnou začít nasazovat aplikace Spring Boot, podívejte se na webinář o rychlém nasazování aplikací Spring Boot do cloudu ve velkém měřítku.