Mi az a Spring Boot?
A Java Spring Boot egy olyan, nyílt forráskódú eszköz, amely megkönnyíti a mikroszolgáltatások és webalkalmazások Java-alapú keretrendszerek használatával való létrehozását. A Boot bármely definíciója szerint a beszélgetésnek a Java nyelvvel kell kezdődnie, amely az alkalmazásfejlesztés egyik legnépszerűbb és legszélesebb körben használt fejlesztési nyelve és számítástechnikai platformja. A fejlesztők a világ minden táján a Java tanulásával kezdik meg a kódolás elsajátítását. A rugalmas és felhasználóbarát Java számos alkalmazás esetében a fejlesztők kedvence, a közösségi médiától, a webtől és a játékalkalmazásoktól kezdve a hálózatkezelésig és a nagyvállalati alkalmazásokig.
A Java és a Spring keretrendszer
Habár a Java egyszerűen használható, és más nyelveknél könnyebben elsajátítható, a Java-alkalmazások fejlesztésének, hibakeresésének és üzembe helyezésének összetettségi szintje szédületes új magasságokba került. Ezt azoknak a változóknak az exponenciális száma okozza, amelyekkel a mai kor fejlesztői szembesülnek, amikor webalkalmazásokat vagy mobilalkalmazásokat fejlesztenek olyan gyakori modern technológiákhoz, mint amilyen például a zenestreamelésre vagy a mobil készpénzfizetésre szolgáló alkalmazások. Az egyszerű üzletági alkalmazásokat készítő fejlesztőknek most már több kódtárral, beépülő modullal, hibanaplózási és hibakezelési könyvtárral, webszolgáltatásokkal való integrációval és több nyelvvel (például C#, Java-, HTML stb.) kell foglalkozniuk. Érthető módon kielégíthetetlen kereslet mutatkozik az olyan eszközök iránt, amelyek leegyszerűsítik a Java-alkalmazások fejlesztését, időt és pénzt takarítva meg a fejlesztőknek.
Az alkalmazás-keretrendszereket, azaz az előre megírt kódok hatalmas halmazait a fejlesztők az igényeiknek megfelelően használhatják és egészíthetik ki velük a saját kódjukat. Ezek a keretrendszerek szinte bármilyen igény esetén enyhítik a fejlesztők terhelését, akár mobil- és webalkalmazásokat fejlesztenek, akár asztali gépekkel és API-kkal dolgoznak. A keretrendszerekkel gyorsabban, egyszerűbben és biztonságosabban hozhat létre alkalmazásokat, mivel újrafelhasználható kódokat és eszközöket biztosítanak a szoftverfejlesztési projekt különböző elemeinek összekapcsolásához.
És itt jön a képbe a Spring: A Spring egy olyan nyílt forráskódú projekt, amely korszerűsített, moduláris megközelítést biztosít az alkalmazások Java használatával való létrehozásához. A Spring-projektek termékcsaládja 2003-ban indult a korai Java-fejlesztés összetettségére adott válaszként, és támogatást nyújt a Java-alkalmazások fejlesztéséhez. A Spring név önmagában általában magát az alkalmazás-keretrendszert, illetve a projektek vagy modulok teljes csoportját jelenti. A Java Spring Boot egy olyan adott modul, amely a Spring-keretrendszer kiterjesztéseként készült.
A Spring-keretrendszer, a Spring Boot és a Java együttműködését alapul véve a Spring Boot tehát egy olyan eszköz, amely leegyszerűsíti és felgyorsítja a webalkalmazások és a mikroszolgáltatások fejlesztését a Spring nevű Java-keretrendszerben.
Néha, mivel a nyelv és/vagy a platform a Java, „Java Spring Boot” „Java Spring-keretrendszer” vagy „Spring Boot-keretrendszer” néven is utalnak rá. Mivel azonban a Javához más, harmadik féltől származó keretrendszerek is készültek, például a Play és a Hibernate, pontosabb „Spring” és „Spring Boot” néven hívni az eszközt.
A Java alapjainak részletes ismertetését a Mi az a Java? című cikkben találja.
Mi a különbség a Spring és a Spring Boot között?
Ahogyan korábban említettük, a Spring egy olyan nyílt forráskódú, Java-alapú alkalmazás-keretrendszer, amely számos kisebb projektet ölel fel. Más népszerű Spring-projektek, közé tartozik például a Spring Data, a Spring Cloud és a Spring Security, csak hogy csak néhányat említsünk. A Spring Boot és a Spring közötti különbség megértéséhez fontos tisztában lenni azzal, hogy bár az alapvető képességeket tekintve lehetnek közöttük eltérések, mindkettő a Spring család tagja.
A Spring és a Spring Boot közötti különbségek teljes megértéséhez először definiálni kell néhány kulcsfontosságú kifejezést.
Mik azok a mikroszolgáltatások?
A mikroszolgáltatások a szoftverfejlesztési architektúra egyik megközelítése. A mikroszolgáltatások „mikro-” előtagja a kód kis méretű, könnyen kezelhető részletekben vagy összetevőkben való szállítására utal, és minden egyes „szolgáltatás” vagy főbb funkció létrehozása és üzembe helyezése a többi szolgáltatástól függetlenül történik. A független összetevők együttműködnek, és a szerződéseknek nevezett, előírt API-dokumentumokon keresztül kommunikálnak. Ezeknek a mikroszolgáltatásoknak a kis léptékűsége és relatív elszigeteltsége számos előnnyel jár. Például mivel az ilyen típusú architektúra elosztott és lazán összekapcsolt, egyetlen összetevő meghibásodása nem okozza az egész alkalmazás leállását. A további előnyök közé tartozik a nagyobb hatékonyság, a könnyebb karbantartás, a jobb üzleti összehangoltság és a nagyobb hibatűrés.
Mi az a függőséginjektálás?
A függőséginjektálás (DI) a kontroll megfordításának (IoC) megvalósítására szolgáló tervezési technika. Az objektumorientált programozásban, például a Javában, a más objektumoktól függő objektumokat függőségeknek nevezzük. A fogadó vagy függő objektumot általában ügyfélnek, azt az objektumot pedig, amelytől az ügyfél függ, szolgáltatásnak nevezzük. A függőséginjektálás tehát átadja a szolgáltatást az ügyfélnek, vagy „injektálja” a függőséget egy injektor nevű kóddal. A függőséginjektálás szükségtelenné teszi, hogy az ügyfél határozza meg a használandó szolgáltatást – ezt az injektor végzi el az ügyfél számára.
Mi az a konvencióalapú kódolás?
A konvencióalapú, más néven konvenció szerinti kódolás, az alkalmazás-keretrendszerekben használt fogalom, amellyel csökkenthető a fejlesztők által meghozandó döntések száma. Az ismétlések elkerülésére vonatkozó alapelvet követve gondoskodik a felesleges kódok megírásának megelőzéséről. A konvenció szerinti kódolás a rugalmasság fenntartására törekszik, miközben lehetővé teszi a fejlesztők számára, hogy csak az általuk létrehozott alkalmazás nem konvencionális aspektusaihoz írjanak kódot. Ha az alkalmazás kívánt viselkedése megfelel a lefektetett konvencióknak, az alkalmazás egyszerűen csak alapértelmezés szerint futni fog anélkül, hogy konfigurációs fájlok írására lenne szükség. A fejlesztőnek csak akkor kell explicit módon megírnia a konfigurációs fájlokat, ha a kívánt viselkedés eltér a „konvenciótól”.
A Spring-keretrendszer és a Spring Boot összehasonlítása
Spring | Spring Boot összehasonlítása | |
---|---|---|
Mi ez? | Java-alapú, nyílt forráskódú webalkalmazás-keretrendszer. | A Spring-keretrendszerre épülő bővítmény vagy modul. |
Mire szolgál? | Rugalmas, teljes mértékben konfigurálható, az előre összeállított kód eszközeit és kódtárait használó környezetet biztosít a testre szabott, lazán összekapcsolt webalkalmazások létrehozásához. | Lehetővé teszi olyan önálló Spring-alkalmazások létrehozását, amelyek azonnal futtathatók jegyzetek, XML-konfiguráció vagy sok további kód írása nélkül. |
Mikor használható? | A Spring használatával az alábbiakat érheti el:
| A Spring Boot használatával az alábbiakat érheti el:
|
Mi a fő funkciója? | Függőséginjektálás | Automatikus konfigurálás |
Vannak beágyazott kiszolgálói? | Nem. A Springben explicit módon kell beállítania a kiszolgálókat. | Igen, a Spring Boot beépített HTTP-kiszolgálókat tartalmaz, ilyen például a Tomcat és a Jetty. |
Hogyan van konfigurálva? | A Spring-keretrendszer rugalmasságot biztosít, de a konfigurációját manuálisan kell létrehozni. | A Spring Boot a Springet és más külső keretrendszereket a „konvencióalapú kódolás” alapértelmezett alapelvével konfigurálja automatikusan. |
Tudnom kell, hogyan lehet dolgozni az XML-lel? | A Springben szükség van az XML-konfiguráció ismeretére. | A Spring Boot nem igényel XML-konfigurációt. |
Léteznek CLI-eszközök az alkalmazások fejlesztéséhez/teszteléséhez? | A Spring-keretrendszer önmagában nem biztosít CLI-eszközöket az alkalmazások fejlesztéséhez vagy teszteléséhez. | Spring-modulként a Spring Boot rendelkezik egy CLI-eszközzel a Spring-alapú alkalmazások fejlesztéséhez és teszteléséhez. |
Véleményezett vagy vélemény nélküli megközelítés alapján működik? | Vélemény nélküli* | Véleményezett* |
*Véleményezett vagy vélemény nélküli keretrendszer-megközelítés
Bár a „véleményezett” szó akár negatívnak is hangozhat, a Spring Boot véleményezett megközelítésének és a vélemény nélküli Spring-keretrendszernek egyaránt megvan a maga előnye.
Véleményezett megközelítés
A véleményezett megközelítés álláspontja szerint létezik egy olyan módszer, amely jelentősen egyszerűbb, mint az összes többi. A szoftver kialakításánál fogva korlátozza a tervezőket, azaz arra biztatja őket, hogy az előírt módon végezzék a feladatokat.
Egy jól kikövezett utat biztosít, azaz olyan ajánlott eljárást, amely a legtöbb ember számára a legtöbb helyzetben működni fog. Az alkalmazás írása közben szigorúan betartják ezeket az ajánlott eljárásokat és széles körben elterjedt konvenciókat. A véleményezett megközelítéssel az együttműködés és a kódolási projekttel kapcsolatos segítségnyújtás sokkal egyszerűbbé válik – a keretrendszer használatában jártas többi fejlesztőnek az új alkalmazás azonnal ismerős terepnek fog számítani, és így rögtön megkezdhetik vele a munkát.
Vélemény nélküli megközelítés
A nem megnyitott megközelítést akkor célszerű alkalmazni, ha minden megoldáshoz nagyjából azonos mértékű erőfeszítésre vagy összetettségre van szükség. Azt az álláspontot képviseli, hogy egy probléma megoldásának nincs egyetlen helyes módja. Ehelyett olyan rugalmas eszközöket biztosít, amelyek számos módot biztosítanak a probléma megoldására. A vélemény nélküli keretrendszerek előnye, hogy nagyfokú rugalmasságot biztosítanak a fejlesztés során, és nagyobb mértékben helyezik az irányítást a fejlesztők kezébe. Az ilyen fokú rugalmasság legnagyobb hátránya, hogy a fejlesztőnek több döntést kell hoznia, és előfordulhat, hogy végül több kódot is kell írnia, mert a keretrendszer annyira nyitott és vélemény nélküli.
A Spring Boot funkciói és előnyei
Végül következzen az izgalmas rész: azaz azok a képességek, amelyeket a Java Spring Boot a Spring-keretrendszeren felül biztosít. A Spring Boot egyszerűbb és gyorsabb módot biztosít az alkalmazások beállítására, konfigurálására és futtatására. Ez kiküszöböli a legtöbb Spring-alapú alkalmazás beállításához szükséges nagyfokú konfigurációval járó terhelést. A fejlesztők anélkül használhatják a Spring Bootot, hogy meg kellene ismerniük az alapjául szolgáló Spring-keretrendszert.
Az alábbiakból megtudhatja, hogyan segíthetnek a Spring Boot-funkciók a Java-alapú programozási feladatok egyszerűsítésében. A Spring Boot néhány fő funkciója:
-
Különálló alkalmazások – A Spring Boot segítségével olyan alkalmazásokat hozhat létre, amelyek nem kapcsolódnak egy adott platformhoz, és egy eszközön helyben futtathatók internetkapcsolat vagy más telepített szolgáltatások nélkül.
-
Beágyazott kiszolgálók – A Spring Boot lehetővé teszi olyan kiszolgálók közvetlen beágyazását, mint amilyen például a Tomcat, a Jetty vagy az Undertow.
-
Véleményezett megközelítés – A Spring Boot a véleményezett kiindulási függőségek megadásával leegyszerűsíti a buildek konfigurációját.
-
Automatikus konfigurálás – A Spring Boot, amikor csak lehetséges, automatikusan konfigurálja a Springet és más külső kódtárakat.
-
Éles üzemre kész funkciók – A Spring Boot olyan éles használatra kész funkciókat biztosít, mint amilyenek például a metrikák, az állapotellenőrzések és a külső konfiguráció.
A Spring Boot előnyei
A Spring Boot:
-
Csökkenti a fejlesztési időt, és növeli a hatékonyságot – A Spring Boot jelentősen megkönnyíti a Spring-alapú alkalmazások Javával való fejlesztését. A Spring-keretrendszer véleményezett megközelítésével csökkentheti a döntésekre és az ismétlődő feladatokra fordított időt, és így több ideje marad arra, hogy az alkalmazások létrehozásával és tesztelésével foglalkozzon.
-
Csökkenti a sablonkódok, jegyzetek és XML-konfigurációk írásának szükségességét – A fejlesztőknek nem kell kódot létrehozniuk vagy XML-t konfigurálniuk, sőt még a Spring-keretrendszer használatát sem kell elsajátítaniuk, ha nem szeretnének ezekkel foglalkozni.
-
A Spring-projektcsaládba integrálja az alkalmazásokat – A Spring Boot-alkalmazások zökkenőmentesen integrálhatók a Spring-keretrendszer ökoszisztémájának más projektjeivel (például Spring Data, Spring Cloud, Spring Security) és egyéb megbízható felhőszolgáltatásokkal (például Microsoft Azure Spring Cloud).
-
Fejlesztői és tesztelési eszközöket biztosít – A Spring Boot parancssori felületi (CLI-) eszközével és beágyazott HTTP-kiszolgálóival rendkívül egyszerűvé válik a Spring-alapú alkalmazások fejlesztéséhez/teszteléséhez szükséges környezetek kialakítása.
-
Beépülő modulokat és eszközöket biztosít a fejlesztés megkönnyítéséhez – A Spring Boot beépülő modulokat biztosít a memórián belüli adatbázisokkal való munkához, továbbá más népszerű fejlesztésautomatizálási eszközöket is kínál, ilyen például az Apache Maven.
Java Spring Boot-oktatóanyagok
Ha már ismeri az alkalmazások Spring-keretrendszerrel való fejlesztésének módját, akkor valószínűleg könnyen elsajátíthatja Spring Boot használatát az ebben a szakaszban található oktatóanyagok, projektindítók és dokumentációk segítségével. De azoknak is van jó hírünk, akik úgy szeretnék gyorsan használatba venni a Spring Bootot, hogy még nem ismerik a keretrendszert. A Spring Boot használatának elsajátítására – és a használatbavételére – a Spring-keretrendszer megismerése előtt is lehetőség van, mivel a keretrendszerrel kapcsolatos alapismereteket a Spring Boot használata során is megtanulhatja. Bár így nem fog mindent megtanulni, amit a keretrendszerről tudni érdemes, jó kiindulási pontnak fog bizonyulni, ha később az elsajátítása mellett dönt.
Azonkívül, hogy sokkal gyorsabbá és hatékonyabbá teszi az alkalmazásfejlesztést, a Spring Boot elsajátításának másik előnye, hogy a többi Spring-funkció, azaz a Spring Data, a Project Reactor és a Spring Security használatára is képessé teszi.
Függőséginjektálás
- XML-alapú, azaz <beans/> és <namespace:*/>.
- Jegyzetalapú, azaz @Component, @Autowired, @Inject.
- Java-alapú, azaz @Configuration classes, @Bean methods.
A kontroll megfordítása (IoC)
- ApplicationContext – a Spring IoC-tárolójaként szolgáló gyökérfelület.
- BeanFactory – a Spring-tároló eléréséhez használható felület.
- Beans – az ApplicationContext által példányosított, összeállított és kezelt objektumok.
Java Spring Boot-oktatóanyagok kezdőknek
Java-alkalmazások létrehozása és biztonságossá tétele
Létrehozhat egy Java-alkalmazást a Spring Initializr segítségével a Microsoft Entra ID-hoz (korábban Azure Active Directory-hez) készült Spring Boot-indító használatával.
Az első alkalmazás üzembe helyezése az Azure Spring Cloudban
Megtudhatja, hogyan hozhat létre, építhet ki és monitorozhat egy, a Spring Initializr segítségével fejlesztett egyszerű Spring Boot-alkalmazást.
Egyszerű Spring Boot-mikroszolgáltatás fejlesztése
Létrehozhat és üzembe helyezhet egy egyszerű mikroszolgáltatást – majd megtanulhatja, hogyan egészítheti ki Spring Cloud-technológiákkal.
További Spring Boot-indítók
A Spring Boot-alkalmazásait tárterülettel, biztonsággal, hitelesítéssel és Key Vault-funkciókkal egészítheti ki.
Gyakori kérdések
-
A Spring Boot a Spring által kínált nyílt forráskódú, mikroszolgáltatás-alapú, webes Java-keretrendszer, amely különösen hasznos a webalkalmazásokat és mikroszolgáltatásokat fejlesztő szoftvermérnökök számára.
-
A „Spring Boot a Javában” a „Java-Spring Boot” ugyanazt jelenti, a két kifejezés felcserélhető egymással. A Java a nyelv és a platform, a Spring a Java-alapú alkalmazás-keretrendszer, a Spring Boot pedig a Spring-keretrendszer kiterjesztése, amely néhány további előnyt is tartalmaz.
-
A Spring Bootban megtalálhatók az általános Spring-keretrendszer funkciói, de a Spring Boot nem igényli a Spring használatának elsajátítását. A fejlesztők kevesebb idő alatt helyezhetik üzembe az alkalmazásokat, mivel a Spring Boot-attribútumok konfigurálása automatikusan történik, a véleményezett megközelítés pedig kiküszöböli a Spring-alkalmazások fejlesztéséhez és üzembe helyezéséhez szükséges sablonkódok és konfigurációk nagy részét.
-
Igen, ahogyan fent már említettük, a Spring Boot különösen hasznos a szoftverfejlesztési architektúra mikroszolgáltatás-alapú megközelítése esetén. A mikroszolgáltatások népszerű módszernek bizonyulnak az olyan kis, autonóm csapatok létrehozására, amelyek egymástól függetlenül dolgoznak, a mikroszolgáltatások pedig kialakításuknál fogva csak a háttérrendszerben működnek.
-
A csökkentett fejlesztési idő, a nagyobb hatékonyság és a könnyű használat csupán néhány előnye a Spring Boot alkalmazások fejlesztésének.
-
A Spring webhelyén számos oktatóanyagot, gyorsútmutatót és dokumentációt, illetve a Microsoft Azure-tól származó Spring Boot-indítót és dokumentációt talál. Ha azonnal neki szeretne látni a Spring Boot-alkalmazások üzembe helyezésének, nézze meg A Spring Boot-alkalmazások nagy méretekben való felhőbeli üzembe helyezésének felgyorsítása című webináriumot.