Spring on Java raamistik, mis kasutab konteinerit rakenduse erinevate komponentide loomiseks ja haldamiseks. Konteiner (mida sageli nimetatakse kevadrakenduse kontekstiks) ühendab rakenduse erinevad komponendid sõltuvuse süstimise (DI) kujundusmustri abil. DI võimaldab kasutada sõltuvas klassis olevat objekti ilma sellest sõltuvas klassis uut eksemplari looma.
Selle asemel, et lubada igal komponendil luua uusi eksemplare nendest, millele nad tuginevad, loob ja haldab Springi konteiner iga enda hostitava komponendi eksemplari. Seejärel sisestab see konteiner komponendi eksemplari kõigisse teistesse komponentidesse, mis seda vajavad.
Kevade põhifunktsioonide uurimine
Kevadraamistikus on umbes 20 hästi organiseeritud moodulit, mis mängivad olulist rolli selle võimes rakendusi luua ja hallata. Nende moodulite põhifunktsioonide põhjal saate need rühmitada viide kategooriasse.
- Südamikukonteiner
- Juurdepääs andmetele/integreerimine
- võrk
- Aspektile orienteeritud programmeerimine ja instrumenteerimine
- Test
Vedrukonteiner
Spring kasutab rakenduse erinevate komponentide (mida ta nimetab ubadeks) loomiseks ja haldamiseks konteinerit. Konteiner on juurdepääsetav Spring’s ApplicationContexti liidese kaudu, mis võimaldab objekte (või ube) luua, konfigureerida ja kokku panna. Springi konteiner saab oma funktsiooni täita konfiguratsiooni metaandmete abil.
Sellel konfiguratsiooni metaandmetel võib olla mitu erinevat vormi, kuid nende tüüpiline vorm on XML. Lisaks ubadele koosneb Springi konteiner ka tuumast, kontekstist ja väljendusmoodulist.
Kevadine juurdepääs andmetele/integreerimine
Kevadraamistiku andmetele juurdepääsu/integreerimise aspekt koosneb mitmest alammoodulist: JDBC, ORM, OXM, JMS ja tehingud. Need moodulid töötavad koos kõigi teie rakenduse kasutatavate andmete haldamiseks.
Kevadine veeb
Spring-rakenduse veebifunktsioon pakub teie rakendusele veebipõhise integratsiooni. Lisaks veebipõhisele integratsioonile pakub Spring veebiservleti moodulit. Veebiservleti moodul vastutab Springi eest Model-View-controller (MVC) rakendamine.
Kevadine aspektile orienteeritud programmeerimine (AOP)
Springi AOP-raamistik on veel üks selle põhikomponente. Kuigi AOP raamistik ei ole Springi konteineri funktsiooni jaoks ülioluline, täiendab see konteinerit, olles võimekas vahevaralahendus. Üks AOP raamistiku põhifunktsioone on see, et see pakub teie rakenduse jaoks deklaratiivseid ettevõtteteenuseid, nimelt deklaratsioonitehingute haldust.
Deklaratiivne tehinguhaldus on soovitav lähenemine tarkvaraarendusele, kuna sellel on minimaalne mõju rakenduse koodile.
Kevadkatse
Kevad tähtsustab rakenduste testimist. Selle testmoodul toetab integratsiooni testimist ja üksuste testimist JUniti või TestNG-i abil.
Kevadrakenduse loomine
Uue kevadrakenduse jaoks on katlaplaadi loomiseks mitu võimalust. Erinevad lähenemisviisid hõlmavad järgmist:
- Veebirakendusest (või Spring Initializrist) Springi ametlikul veebisaidil.
- Projekti kataloogi struktuuri ja ehituse spetsifikatsioonide käsitsi loomine.
- Spring Tool Suite'iga.
- Spring Booti käsurea liidesega käsurealt.
- Eclipse IDE-ga.
- IntelliJ IDEA IDE-ga.
Kõige populaarsem lähenemine on kevadine initsiatiiv:
Nagu ülaltoodud pildilt näete, peate tegema mitu otsust. Esimene on projekti tüüp, mida soovite lähtestada. Kevadel on kolm võimalust: Gradle Groovy jaoks, Gradle Kotlini jaoks või Maven. See näidisrakendus kasutab Maveni projekti.
Teised valikud, mida peate valima, on keel (Java), Spring Booti versioon, mida soovite kasutada, ja projekti metaandmed. Kevadel on juba viiel väljal mõned näilised andmed, mis aitavad teil näidisrakendust luua. Siiski peate neid välju projektipõhiste andmetega värskendama, kuna need metaandmed kirjeldavad teie kevadist rakendust, sealhulgas kevadisi ube ja nende meetodeid.
Järgmisena peate valima pakendi, kuhu soovite failid paigutada (purk või sõda). Seejärel saate valida oma seadmes oleva Java versiooni. Lõplik otsus, mille peate tegema, on teie rakenduse jaoks soovitud sõltuvuste tüüp.
Spring pakub mitmeid sõltuvusi, mida saate oma rakendusele atribuutide lisamiseks kasutada. Rakendusele uue sõltuvuse lisamiseks klõpsake lihtsalt Spring Initializrist paremal asuvat sõltuvuste lisamise nuppu. See toiming loob teie ekraanil järgmise ülekatte:
Selle näidisrakenduse jaoks on ainus sõltuvus, mida vajate, Spring Web. See sõltuvus võimaldab teil luua veebirakendusi MVC arhitektuuri abil. Kui olete valinud kõik sõltuvused, mida soovite oma rakenduses kasutada, looge klikid. See laadib teie jaoks alla projekti katlaplaadi.
Nüüd on teil Spring Boot (mis on üks Springi raamatukogudest) projekt. Viimane samm on projekti importimine eelistatud IDE-sse. Teie kevadprojektil on järgmine projekti struktuur:
See on tavaline Maveni projekti struktuur ja seal on mitu olulist faili, millega peate tutvuma.
- Pom.xml: see sisaldab Spring rakenduse konfiguratsiooniandmeid.
- OnlineShopaholicsApplication.java: see on Spring Booti põhiklass, mis rakendust käivitab.
- OnlineShopaholicsApplicationTest.java: see on a JUniti test klass, mis tagab kevadise rakenduse konteksti (või konteineri) korrektse laadimise.
Kevadise rakenduse käivitamine
Spring’s bootstrap klassil, mis antud juhul on OnlineShopaholicsApplication klass, on järgmine algkood:
pakett com.onlineshopaholics;
importidaorg. Springframework.boot.Kevadrakendus;
importidaorg. Springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
avalikklassOnlineShopaholicsApplication{
avalikstaatilinetühinepeamine(String[] args){
SpringApplication.run (OnlineShopaholicsApplication.klass, args);
}
}
Ülaltoodud koodi üks olulisemaid aspekte on @SpringBootApplication annotatsioon, mis on liitmärkus, mis võimaldab teie rakendusel pääseda juurde kolme muu annotatsiooni funktsioonidele.
- @EnableAutoconfiguration: see märkus lubab Spring Booti automaatse konfigureerimise. See tähendab, et see käsib Spring bootil konfigureerida mis tahes komponendi, mida teie rakendus peab tema arvates töötama.
- @ComponentScan: see märkus võimaldab lubada komponentide skannimise. See funktsioon on oluline, kuna see võimaldab Springil automaatselt avastada ja registreerida muid märkustega komponente, et neid kasutada Spring rakenduse kontekstis (või konteineris).
- @SpringBootConfiguration: see on @Configureation annotatsiooni erivorm, mis võimaldab registreerida ube (või objekte) Spring rakenduse kontekstis.
Ülaltoodud koodi teine oluline aspekt on peamine () meetodil, käivitab see teie rakenduse. Kui rakendus praegu käivitub, käivitab see lihtsalt serveri. Seega, kui soovite rakendusele rohkem funktsioone lisada, peate koodi värskendama:
pakett com.onlineshopaholics;
importidaorg. Springframework.boot.Kevadrakendus;
importidaorg. Springframework.boot.autoconfigure.SpringBootApplication;
importidaorg. Springframework.võrk.siduda.annotatsioon.GetMapping;
importidaorg. Springframework.võrk.siduda.annotatsioon.RequestParam;
importidaorg. Springframework.võrk.siduda.annotatsioon.RestController;@SpringBootApplication
@RestController
avalikklassOnlineShopaholicsApplication{
avalikstaatilinetühinepeamine(String[] args){
SpringApplication.run (OnlineShopaholicsApplication.klass, args);
}
@GetMapping("/klient")
avalik String Tere tulemast(@RequestParam (väärtus = "nimi", vaikeväärtus = "Klient") String nimi) {
tagasiString.format("Tere tulemast %s!", nimi);
}
}
Rakendusel Spring Boot on nüüd kolm uut märkust:
- @RestController: see märkus tähistab klassi kontrollerina, nii et iga ülaltoodud klassi meetod (peale main()) tagastab vaate asemel domeeniobjekti.
- @GetMapping: see märkus vastendab HTTP GET-i päringud konkreetsetele päisemeetoditele. Seega, iga kord, kui loote brauseris päringu „/customer” jaoks, käsitleb meetod Welcome() seda päringut, tagastades stringi väärtuse.
- @RequestParam: see märkus näitab, et meetodi parameeter peaks olema seotud veebipäringu parameetriga.
Uuendatud koodiga teie kevad OnlineShopaholicsApplication on nüüd kliendileht, mida saate oma brauseris vaadata. Rakenduse käivitamine käivitab serveri ja loob väljundi konsoolis.
Väljundis on palju olulist teavet. See annab teada, et server töötab, kui kaua initsialiseerimisprotsess aega võttis ja millisel pordil rakendus töötab (vaikimisi 8080). Seega, kui navigeerite aadressile http://localhost: 8080/klient näete oma brauseris järgmist väljundit:
Nüüd saate kujundada oma rakenduse vaate
Teine oluline fail projekti struktuuris, mida võite märgata, on mallid kausta. Ideaalis on OnlineShopaholicsApplication klass peaks toimima kontrollerina, mis käsitleb erinevate vaadete päringuid. Seetõttu ei tohiks kontrolleriklass terviklikus rakenduses sisaldada teksti, mis kuvatakse selle päringu vaates.
Selle asemel peate looma mallifailid HTML-i abil ja asetama need oma Spring-rakenduse mallide kausta.