A Spring egy Java-keretrendszer, amely egy tárolót használ az alkalmazások különböző összetevőinek létrehozására és kezelésére. A tároló (gyakran tavaszi alkalmazáskörnyezetnek nevezik) összekapcsolja az alkalmazás különböző összetevőit a függőségi befecskendezési (DI) tervezési mintával. A DI lehetővé teszi, hogy egy objektumot egy függő osztályban használjon anélkül, hogy új példányt hozna létre a függő osztályon belül.
Így ahelyett, hogy megengedné az egyes összetevőknek, hogy új példányokat hozzanak létre azokból, amelyekre támaszkodnak, a Spring tárolója létrehoz és karbantart egy példányt az általa tárolt összetevők mindegyikéből. Ez a tároló ezután beilleszti az összetevő egy példányát az összes többi összetevőbe, amelynek szüksége van rá.
Fedezze fel a tavasz fő jellemzőit
A Spring keretrendszer körülbelül 20 jól szervezett modult tartalmaz, amelyek alapvető szerepet játszanak az alkalmazások létrehozásában és kezelésében. A modulok elsődleges jellemzői alapján öt kategóriába sorolhatja őket:
- Core Container
- Adathozzáférés/Integráció
- Web
- Szempontorientált programozás és műszerezés
- Teszt
Tavaszi konténer
A Spring egy tárolót használ az alkalmazás különböző összetevőinek (amelyeket babnak nevez) létrehozására és kezelésére. A tároló a Spring ApplicationContext felületén keresztül érhető el, amely lehetővé teszi az objektumok (vagy komponensek) példányosítását, konfigurálását és összeállítását. A Spring tárolója a konfigurációs metaadatok segítségével tudja ellátni funkcióját.
Ennek a konfigurációs metaadatnak többféle formája lehet, de tipikus formája az XML. A tavaszi konténer a babon kívül magból, kontextusból és kifejezési modulból is áll.
Tavaszi adathozzáférés/integráció
A tavaszi keretrendszer adatelérési/integrációs aspektusa több almodulból áll: JDBC, ORM, OXM, JMS és tranzakció. Ezek a modulok együtt kezelik az alkalmazás által használt adatokat.
Tavaszi web
A Spring alkalmazás webes funkciója web-orientált integrációt biztosít az alkalmazáshoz. A weborientált integráció mellett a Spring webszervlet modult is biztosít. A webszerverlet modul felelős a Spring's-ért Model-View-controller (MVC) megvalósítás.
Tavaszi szempont-orientált programozás (AOP)
A Spring AOP keretrendszere egy másik kulcseleme. Bár az AOP keretrendszer nem kulcsfontosságú a Spring konténerfunkciója szempontjából, kiegészíti a tárolót, mivel alkalmas köztes szoftver megoldás. Az AOP keretrendszer egyik legfontosabb jellemzője, hogy deklaratív vállalati szolgáltatásokat nyújt az alkalmazás számára, nevezetesen a deklarációs tranzakciók kezelését.
A deklaratív tranzakciókezelés kívánatos megközelítés a szoftverfejlesztésben, mivel minimális hatással van az alkalmazás kódjára.
Tavaszi teszt
A tavasz kiemelt jelentőséget tulajdonít az alkalmazások tesztelésének. Tesztmodulja támogatja az integrációs tesztelést és az egységtesztet JUnit vagy TestNG használatával.
Tavaszi pályázat készítése
Számos módja van a kazán létrehozásának egy új tavaszi alkalmazáshoz. A különböző megközelítések a következők:
- A webalkalmazásból (vagy Spring Initializr) a Spring hivatalos webhelyén.
- Projektkönyvtár-struktúra és összeállítási specifikációk manuális létrehozása.
- A Spring Tool Suite segítségével.
- A parancssorból a Spring Boot parancssori felülettel.
- Az Eclipse IDE-vel.
- Az IntelliJ IDEA IDE-vel.
A legnépszerűbb megközelítés a tavaszi inicializálás:
Amint a fenti képen látható, számos döntést kell meghoznia. Az első az inicializálni kívánt projekt típusa. A tavasz három lehetőséget kínál: Gradle for Groovy, Gradle for Kotlin vagy Maven. Ez a példaalkalmazás egy Maven projektet fog használni.
A további lehetőségek, amelyeket ki kell választani, a nyelv (Java), a Spring Boot használni kívánt verziója és a projekt metaadatai. A Spring öt mezőjében már van néhány áladat, amelyek segítenek egy példaalkalmazás létrehozásában. Azonban frissítenie kell ezeket a mezőket projekt-specifikus adatokkal, mivel ezek a metaadatok leírják a Spring alkalmazást, beleértve a Spring bean-eket és módszereiket.
Ezután ki kell választania azt a csomagolást, amelyben a fájlokat szeretné tárolni (jar vagy war). Ezután kiválaszthatja a Java verzióját az eszközön. A végső döntés, amelyet meg kell hoznia, az, hogy milyen típusú függőséget szeretne az alkalmazáshoz.
A Spring számos függőséget biztosít, amelyek segítségével tulajdonságokat adhat hozzá az alkalmazáshoz. Ha új függőséget szeretne hozzáadni az alkalmazáshoz, egyszerűen kattintson a függőségek hozzáadása gombra a Spring Initializr jobb oldalán. Ez a művelet a következő fedvényt hozza létre a képernyőn:
Ehhez a példaalkalmazáshoz az egyetlen függőségre lesz szüksége a Spring Web. Ez a függőség lehetővé teszi webalkalmazások készítését az MVC architektúra használatával. Miután kiválasztotta az alkalmazásban használni kívánt összes függőséget, folytassa a kattintásgenerálást. Ezzel letölti a projekt sablonját.
Most van egy Spring Boot (amely a Spring egyik könyvtára) projektje. Az utolsó lépés a projekt importálása a kívánt IDE-be. Tavaszi projektje a következő projektszerkezettel rendelkezik:
Ez egy normál Maven projektstruktúra, és számos fontos fájl van, amelyeket meg kell ismernie.
- Pom.xml: Ez tartalmazza a Spring alkalmazás konfigurációs adatait.
- OnlineShopaholicsApplication.java: Ez a Spring Boot főosztálya, amely végrehajtja az alkalmazást.
- OnlineShopaholicsApplicationTest.java: Ez a JUnit teszt osztály, amely biztosítja, hogy a Spring alkalmazáskörnyezet (vagy tároló) megfelelően betöltődik.
Tavaszi pályázat futtatása
A Spring bootstrap osztálya, amely jelen esetben az OnlineShopaholicsApplication osztály, a következő kezdőkóddal rendelkezik:
csomag com.onlineshopaholics;
importorg.rugóváz.csomagtartó.SpringApplication;
importorg.rugóváz.csomagtartó.autoconfigure.SpringBootApplication;
@SpringBootApplication
nyilvánososztályOnlineShopaholicsApplication{
nyilvánosstatikusüresfő-(String[] args){
SpringApplication.run (OnlineShopaholicsApplication.osztály, args);
}
}
A fenti kód egyik legfontosabb szempontja a @SpringBootApplication annotáció, amely egy összetett kommentár, amely lehetővé teszi az alkalmazás számára, hogy hozzáférjen három másik kommentár funkcióihoz:
- @EnableAutoconfiguration: Ez a megjegyzés lehetővé teszi a Spring Boot automatikus konfigurálását. Ez azt jelenti, hogy utasítja a Spring boot-ot, hogy állítson be minden olyan összetevőt, amelyről úgy gondolja, hogy az alkalmazásnak működnie kell.
- @ComponentScan: Ez a megjegyzés lehetővé teszi a komponensek vizsgálatának engedélyezését. Ez a funkció fontos, mivel lehetővé teszi a Spring számára, hogy automatikusan felfedezzen és regisztráljon más megjegyzésekkel ellátott összetevőket a Spring alkalmazáskörnyezet (vagy tároló) általi használatra.
- @SpringBootConfiguration: Ez a @Configureation annotáció speciális formája, amely lehetővé teszi babok (vagy objektumok) regisztrálását a Spring alkalmazás környezetében.
A fenti kód másik fontos szempontja a fő() módszerrel végrehajtja az alkalmazást. Amikor az alkalmazás most fut, egyszerűen elindítja a szervert. Tehát, ha további funkciókat szeretne hozzáadni az alkalmazáshoz, frissítenie kell a kódot:
csomag com.onlineshopaholics;
importorg.rugóváz.csomagtartó.SpringApplication;
importorg.rugóváz.csomagtartó.autoconfigure.SpringBootApplication;
importorg.rugóváz.web.kötni.annotáció.GetMapping;
importorg.rugóváz.web.kötni.annotáció.RequestParam;
importorg.rugóváz.web.kötni.annotáció.RestController;@SpringBootApplication
@RestController
nyilvánososztályOnlineShopaholicsApplication{
nyilvánosstatikusüresfő-(String[] args){
SpringApplication.run (OnlineShopaholicsApplication.osztály, args);
}
@GetMapping("/vevő")
nyilvános Húr Welcome(@RequestParam (érték = "név", defaultValue = "Vevő") Húr név) {
VisszatérésHúr.formátum("Üdvözöljük %s!", név);
}
}
A Spring Boot alkalmazás most három új megjegyzéssel rendelkezik:
- @RestController: Ez a megjegyzés az osztályt vezérlőként jelöli meg, így a fenti osztályban minden metódus (a main()-on kívül) egy tartományobjektumot ad vissza nézet helyett.
- @GetMapping: Ez a megjegyzés leképezi a HTTP GET kéréseket meghatározott fejlécmódszerekre. Tehát minden alkalommal, amikor létrehoz egy kérést a „/customer” számára a böngészőben, az Welcome() metódus egy karakterláncérték visszaadásával kezeli a kérést.
- @RequestParam: Ez a megjegyzés azt jelzi, hogy egy metódusparamétert egy webes kérelem paraméterhez kell kötni.
A frissített kóddal a tavasz OnlineShopaholicsApplication most van egy ügyféloldala, amelyet megtekinthet a böngészőjében. Az alkalmazás futtatása elindítja a szervert, és kimenetet állít elő a konzolon.
A kimenetben sok fontos információ található. Megmondja, hogy a szerver fut, megmondja, hogy mennyi ideig tartott az inicializálási folyamat, és megmondja, hogy az alkalmazás melyik porton fut (alapértelmezés szerint 8080). Ezért, ha ide navigál http://localhost: 8080/ügyfél a következő kimenetet fogja látni a böngészőjében:
Most megtervezheti alkalmazásnézetét
Egy másik fontos fájl a projektstruktúrában, amelyet észrevehet, a sablonokat mappát. Ideális esetben a OnlineShopaholicsApplication osztálynak vezérlőként kell szolgálnia, amely kezeli a különböző nézetekre vonatkozó kéréseket. Ezért egy teljes alkalmazásban a vezérlő osztály nem tartalmazhatja azt a szöveget, amely a kérés nézetében megjelenik.
Ehelyett sablonfájlokat kell létrehoznia HTML használatával, és el kell helyeznie azokat a Spring alkalmazás sablonok mappájába.