Přeskočit navigaci

Co je Java Spring Boot?

Úvod k modulu Spring Boot – oblíbenému nástroji založenému na jazyce Java určenému k vývoji webových aplikací a mikroslužeb

Co je Spring Boot?

Všechny definice modulu Spring Boot vycházejí z jazyka Java. Jde o jeden z nejoblíbenějších a nejrozšířenějších vývojových jazyků a výpočetních 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á. Jde o oblíbený jazyk vývojářů pro nejrůznější aplikace, ať jsou to sociální média, web, herní, síťové nebo podnikové aplikace.

Java a architektura Spring

I když se jazyk Java snáze používá a učí než jiné jazyky, jeho složitost při vytváření, ladění a nasazování aplikací Java dosahuje zcela nové úrovně. Příčinou je velký počet proměnných, který exponenciálně roste a kterým moderní vývojáři čelí při vývoji webových nebo mobilních aplikací pro běžné moderní technologie, jako je streamování hudby nebo aplikace na mobilní hotovostní 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 zjednodušily vývoj aplikací Java a šetřily vývojářům čas a peníze.

Zadejte aplikační prostředí – velké části 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. Tato prostředí 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 prostředí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.

Odtud pochází 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í prostředí, nebo celou skupinu projektů neboli modulů. Spring Boot je jeden konkrétní modul, který je vytvořený jako rozšíření platformy Spring.

Když jsme si řekli, jak prostředí Spring, rozšíření Spring Boot a jazyk Java fungují dohromady, definujeme si Spring Boot – nástroj, který zjednodušuje a zrychluje vývoj webových aplikací a mikroslužeb v prostředí jazyka Java, což je Spring.

Protože jde o jazyk a/nebo architekturu Java, označuje se někdy jako Java Spring Boot, architektura Java Spring nebo architektura Spring Boot. Existují ale i jiné externí platformy jazyka 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?

Řekli jsme si, že Spring je opensourcové aplikační prostředí založené na jazyce Java, které zahrnuje řadu menších projektů. K dalším oblíbeným projektům Spring patří Spring Data, Spring Cloud a Spring Security, abychom jmenovali aspoň některé. K pochopení rozdílu mezi Spring Boot a Spring je důležité si uvědomit, že i když existuje řada rozdílů v základních funkcích, jedná se vždy o rodinu Spring.

K úplnému pochopení rozdílů mezi řešeními Spring Boot a Spring je potřeba si nejprve definovat několik klíčových výrazů.

Co jsou mikroslužby?

Mikroslužby představují přístup k architektuře vývoje softwaru. Předpona mikro- znamená, že kód se poskytuje v malých, zvládnutelných částech označovaných jako komponenty. Každá „služba“ neboli základní funkce se vytváří a nasazuje nezávisle na ostatních službách. Tyto nezávislé komponenty vzájemně spolupracují a komunikují prostřednictvím předepsaných dokumentů rozhraní API, které se nazývají kontrakty. Malý rozměr a relativní oddělenost těchto mikroslužeb přináší řadu výhod. Tento typ architektury je například distribuovaný a volně propojený, takže při selhání jedné komponenty nehavaruje celá aplikace. K dalším výhodám patří větší produktivita, snadnější údržba, lepší podniková sladěnost a větší odolnost proti chybám.

Co je vkládání závislostí?

Vkládání závislostí (DI) je technika návrhu, která se používá k obrácení řízení (IoC). V objektově orientovaném programování v jazyce Java 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 vkládání závislostí dochází k předání služby klientovi neboli probíhá vložení či „injektáž“ závislosti v kódu, který se označuje jako injektor. Při vkládání 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 architektuře aplikací 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 konvencí.

Prostředí Spring vs. Spring Boot

Spring Boot vychází z výhod prostředí Spring. Ve skutečnosti nestojí otázka prostředí Spring vs. Spring Boot buď/anebo, ale spíše jde o spojení výhod obou řešení. Spring a Spring Boot jdou ruku v ruce:

Není k dispozici Spring Spring Boot
Co je to? Opensourcové prostředí webových aplikací založených na jazyce Java. Rozšíření nebo modul, které vycházejí z prostředí Spring.
Co to 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 potřebných poznámek, konfigurace XML a psaní spousty dalšího kódu.
Kdy použít?

Spring použijte, když chcete:

  • Flexibilita
  • Nekonkretizovaný přístup.*
  • Pokud chcete z vlastního kódu odebrat závislosti.
  • Pokud chcete implementovat zcela jedinečnou konfiguraci.
  • Slouží k vývoji podnikových aplikací.

Spring Boot použijte, když chcete:

  • Snadné použití
  • Konkretizovaný přístup.*
  • Když chcete rychle získat a zprovoznit kvalitní aplikace a zkrátit dobu potřebnou k vývoji.
  • Používá se, abyste se vyhnuli psaní často používaného kódu nebo konfiguraci XML.
  • Slouží k vývoji rozhraní REST API.
Jaká je klíčová funkce? Vkládání závislostí Automatická konfigurace
Má vložené servery? Ne. V architektuře Spring je potřeba servery výslovně nastavit. Ano, modul Spring Boot je dodáván s integrovaným servery HTTP, jako je Tomcat a Jetty.
Jak probíhá konfigurace? Prostředí Spring nabízí flexibilitu, ale konfigurovat ho musíte ručně. Spring Boot konfiguruje Spring a další prostředí 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? V prostředí Spring je potřeba umět konfigurovat XML. Spring Boot nevyžaduje konfiguraci XML.
Existují nástroje CLI pro vývoj/testování aplikací? Architektura Spring sama o sobě nenabízí nástroje CLI pro vývoj a testování aplikací. Spring Boot je modul v prostředí Spring, který obsahuje nástroj CLI pro vývoj a testování aplikací založených na architektuře Spring.
Vychází z konkretizovaného nebo nekonkretizovaného přístupu? Nekonkretizovaný* Konkretizovaný*

*Konkretizovaný vs. nekonkretizovaný přístup k architektuře

I když se může zdát, že výraz „konkretizovaný“ zní negativně, mají obě možnosti, tzn. konkretizovaný přístup modulu Spring Boot i nekonkretizované prostředí Spring, své výhody.

Vyhraněný 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.

Architektura 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 touto architekturou 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á architektura má výhodu, že nabízí větší flexibilitu při vývoji a nabízí 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 architektura je hodně otevřená a obecná.

Funkce a výhody modulu Spring Boot

To nejlepší nakonec: Jsou to funkce modulu Spring Boot, které nabízí nad rámec prostředí 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 prostředí Spring. Vývojáři mohou rovnou začít používat Spring Boot, aniž by se museli učit původní prostředí 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é do provozu – Spring Boot nabízí funkce, které jsou připraveny do provozu. 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 architektuře Spring v jazyce Java. Konkretizovaný přístup k architektuře 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 prostředí Spring.
  • Integruje aplikace do rodiny projektů Spring – aplikace Spring Boot jsou bez problémů integrovatelné do jiných projektů v ekosystému architektury 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 architektuře 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.

Kurzy k modulu Java Spring Boot

Pokud máte zkušenosti s vytvářením aplikací v prostředí 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 architekturu zatím neznají, je tu jedna dobrá zpráva: Modul Spring Boot se můžete naučit a můžete s ním pracovat před tím, než se naučíte Spring, protože řadu základních principů architektury se naučíte za pochodu. I když se nenaučíte všechno, co o této architektuře potřebujete vědět, získáte dostatečný základ, pokud se rozhodnete naučit se ji 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 prostředí Spring, jako je Spring Data, Project Reactor a Spring Security.

To znamená, že první kurz věnovaný modulu Spring Boot pro vás bude jednodušší, pokud se napřed naučíte, jak v prostředí Spring fungují základní principy vkládání závislostí a obrácení řízení. Tady je velice hrubý, celkový přehled:

Vkládání závislostí

  • Je založená na XML, tzn. <beans/> a <namespace:*/>
  • Annotation-based, i.e., @Component, @Autowired, @Inject
  • Založené na jazyce Java, např. @Konfigurační třídy, @Metody objektů bean

Obrácení ří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é rozhraním ApplicationContext

Kurzy na Spring Boot pro začátečníky

Jakmile zvládnete základy a začnete aplikace Spring Boot vytvářet a nasazovat ve velkém, měli byste zvážit použití plně spravované služby Azure Spring Cloud od společností Microsoft a VMware.

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 Azure Active Directory (Azure AD).

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á platforma jazyka Java, která je založená na mikroslužbách a nabízí ji společnost Spring. Ocení ji hlavně softwarový inženýři, kteří vyvíjejí webové aplikace a mikroslužby.

    Další informace

  • 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í prostředí založené na jazyce Java a Spring Boot je prostředí Spring rozšířené o některé přidané výhody.

    Další informace

  • Spring Boot má funkce obecné architektury 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.

    Další informace

  • 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.

    Další informace

  • Ř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 zavádění aplikací Spring Boot do cloudu ve velkém.

    Další informace

Jsme na vás připraveni – společně vytvoříme váš bezplatný účet Azure