Spring je Java okvir koji koristi spremnik za stvaranje i upravljanje različitim komponentama aplikacije. Spremnik (često se naziva Spring aplikacijski kontekst) povezuje različite komponente u aplikaciji pomoću uzorka dizajna ubrizgavanja ovisnosti (DI). DI vam omogućuje korištenje objekta u ovisnoj klasi, bez stvaranja njegove nove instance unutar ovisne klase.
Dakle, umjesto da dopušta svakoj komponenti da stvara nove instance onih na koje se oslanja, Springov spremnik stvara i održava instancu svake komponente koju hostira. Ovaj spremnik zatim ubacuje instancu komponente u sve druge komponente kojima je potrebna.
Istraživanje ključnih značajki Springa
Okvir Spring ima oko 20 dobro organiziranih modula koji igraju važnu ulogu u njegovoj sposobnosti stvaranja i upravljanja aplikacijama. Na temelju primarnih značajki ovih modula, možete ih grupirati u pet kategorija:
- Spremnik jezgre
- Pristup podacima/integracija
- mreža
- Aspektno orijentirano programiranje i instrumentacija
- Test
Opružni kontejner
Spring koristi spremnik za stvaranje i upravljanje različitim komponentama (koje naziva grahovima) aplikacije. Spremniku je moguće pristupiti preko Springovog ApplicationContext sučelja, koje vam omogućuje da instancirate, konfigurirate i sastavite objekte (ili grahove). Springov spremnik može obavljati svoju funkciju zahvaljujući konfiguracijskim metapodacima.
Ovi konfiguracijski metapodaci mogu imati nekoliko različitih oblika, ali njihov tipični oblik je XML. Osim graha, Springov spremnik također se sastoji od jezgre, konteksta i modula izraza.
Spring pristup podacima/integracija
Aspekt pristupa podacima/integracije proljetnog okvira sastoji se od nekoliko podmodula: JDBC, ORM, OXM, JMS i transakcija. Ovi moduli rade zajedno kako bi upravljali svim podacima koje vaša aplikacija koristi.
Proljetni web
Web značajka Spring aplikacije pruža web-orijentiranu integraciju za vašu aplikaciju. Uz web-orijentiranu integraciju, Spring nudi web servlet modul. Modul web servleta odgovoran je za Spring model-view-controller (MVC) implementacija.
Spring aspektno orijentirano programiranje (AOP)
Springov AOP okvir još je jedna od njegovih ključnih komponenti. Iako AOP okvir nije ključan za Springovu funkciju spremnika, on nadopunjuje spremnik tako što je sposobno međuslojno rješenje. Jedna od ključnih značajki AOP okvira je da pruža deklarativne poslovne usluge za vašu aplikaciju, odnosno upravljanje transakcijama deklaracije.
Deklarativno upravljanje transakcijama je poželjan pristup razvoju softvera jer ima minimalan utjecaj na kod aplikacije.
Proljetni test
Proljeće pridaje veliku važnost testiranju aplikacija. Njegov testni modul podržava integracijsko testiranje i testiranje jedinica pomoću JUnit ili TestNG.
Izrada proljetne aplikacije
Postoji nekoliko načina za izradu predloška za novu Spring aplikaciju. Različiti pristupi uključuju:
- Iz web aplikacije (ili Spring Initializr) na službenoj web stranici Springa.
- Ručno kreiranje strukture direktorija projekta i specifikacije izrade.
- Uz Spring Tool Suite.
- Iz naredbenog retka sa sučeljem naredbenog retka Spring Boot.
- S Eclipse IDE.
- Uz IntelliJ IDEA IDE.
Najpopularniji pristup je Spring Initializr:
Kao što možete vidjeti na gornjoj slici, morat ćete donijeti nekoliko odluka. Prvi je tip projekta koji želite pokrenuti. Spring nudi tri opcije: Gradle za Groovy, Gradle za Kotlin ili Maven. Ovaj primjer aplikacije koristit će Maven projekt.
Ostale opcije koje morate odabrati su jezik (Java), verzija Spring Boot-a koju želite koristiti i metapodaci projekta. Spring već ima neke lažne podatke u svojih pet polja koji će vam pomoći da napravite oglednu aplikaciju. Međutim, morat ćete ažurirati ova polja podacima specifičnim za projekt, budući da će ti metapodaci opisati vašu Spring aplikaciju uključujući Spring grahove i njihove metode.
Zatim ćete morati odabrati pakiranje u kojem želite svoje datoteke (jar ili war). Zatim možete odabrati verziju Jave koju imate na svom uređaju. Konačna odluka koju ćete morati donijeti je vrsta ovisnosti koju želite za svoju aplikaciju.
Spring nudi nekoliko ovisnosti koje možete koristiti za dodavanje svojstava svojoj aplikaciji. Kako biste svojoj aplikaciji dodali novu ovisnost, jednostavno kliknite gumb za dodavanje ovisnosti s desne strane Spring Initializr. Ova će radnja generirati sljedeći sloj na vašem zaslonu:
Za ovaj primjer aplikacije, jedina ovisnost koja će vam trebati je Spring Web. Ova ovisnost omogućuje vam izradu web aplikacija pomoću MVC arhitekture. Nakon što ste odabrali sve ovisnosti koje želite koristiti u svojoj aplikaciji, kliknite na generiranje. Ovo će za vas preuzeti predložak projekta.
Sada imate Spring Boot (koji je jedna od Springovih knjižnica) projekt. Zadnji korak je uvoz projekta u željeni IDE. Vaš proljetni projekt imat će sljedeću strukturu projekta:
Ovo je normalna struktura Mavenovog projekta i postoji nekoliko važnih datoteka s kojima se morate upoznati.
- Pom.xml: Ovo sadrži podatke o konfiguraciji Spring aplikacije.
- OnlineShopaholicsApplication.java: Ovo je glavna klasa Spring Boot koja izvršava aplikaciju.
- OnlineShopaholicsApplicationTest.java: Ovo je JUnit test klasa koja osigurava ispravno učitavanje konteksta Spring aplikacije (ili spremnika).
Pokretanje proljetne aplikacije
Springova bootstrap klasa, koja je u ovom slučaju klasa OnlineShopaholicsApplication, ima sljedeći početni kod:
paket com.onlineshopaholics;
uvozorg.opružni okvir.čizma.Proljetna aplikacija;
uvozorg.opružni okvir.čizma.autokonfiguracija.SpringBootApplication;
@SpringBootApplication
javnostrazredaOnlineShopaholicsApplication{
javnoststatičkiponištitiglavni(String[] argumenti){
SpringApplication.run (OnlineShopaholicsApplication.razreda, args);
}
}
Jedan od najvažnijih aspekata koda iznad je @SpringBootApplication anotacija, koja je složena bilješka koja vašoj aplikaciji omogućuje pristup značajkama tri druge bilješke:
- @EnableAutoconfiguration: Ova napomena omogućuje automatsku konfiguraciju Spring Boota. To znači da kaže Spring boot-u da konfigurira bilo koju komponentu za koju misli da će vaša aplikacija trebati da funkcionira.
- @ComponentScan: Ova napomena omogućuje vam da omogućite skeniranje komponenti. Ova značajka je važna, omogućuje Springu da automatski otkrije i registrira druge označene komponente za korištenje od strane konteksta Spring aplikacije (ili spremnika).
- @SpringBootConfiguration: Ovo je specijalizirani oblik anotacije @Configureation, koji vam omogućuje registraciju grahova (ili objekata) u kontekstu Spring aplikacije.
Drugi važan aspekt gornjeg koda je glavni() metoda, ona izvršava vašu aplikaciju. Kada se aplikacija sada pokrene, ona jednostavno pokreće poslužitelj. Dakle, ako želite dodati više funkcionalnosti aplikaciji, morat ćete ažurirati kôd:
paket com.onlineshopaholics;
uvozorg.opružni okvir.čizma.Proljetna aplikacija;
uvozorg.opružni okvir.čizma.autokonfiguracija.SpringBootApplication;
uvozorg.opružni okvir.mreža.vezati.bilješka.GetMapping;
uvozorg.opružni okvir.mreža.vezati.bilješka.RequestParam;
uvozorg.opružni okvir.mreža.vezati.bilješka.RestController;@SpringBootApplication
@RestController
javnostrazredaOnlineShopaholicsApplication{
javnoststatičkiponištitiglavni(String[] argumenti){
SpringApplication.run (OnlineShopaholicsApplication.razreda, args);
}
@GetMapping("/kupac")
javnost Niz Dobrodošli(@RequestParam (vrijednost = "Ime", zadana vrijednost = "Kupac") Niz Ime) {
povratakNiz.format("Dobro došli %s!", Ime);
}
}
Aplikacija Spring Boot sada ima tri nove napomene:
- @RestController: Ova napomena označava klasu kao kontroler, tako da će svaka metoda u gornjoj klasi (osim main()) vratiti objekt domene umjesto pogleda.
- @GetMapping: Ova napomena preslikava HTTP GET zahtjeve na specifične metode zaglavlja. Dakle, svaki put kada kreirate zahtjev za “/customer” u pregledniku, metoda Welcome() obradit će zahtjev vraćanjem vrijednosti niza.
- @RequestParam: Ova napomena označava da bi parametar metode trebao biti vezan za parametar web zahtjeva.
S ažuriranim kodom vaše proljeće OnlineShopaholicsApplication sada ima korisničku stranicu koju možete vidjeti u svom pregledniku. Izvršenje aplikacije pokrenut će poslužitelj i proizvesti izlaz u konzoli.
U izlazu je puno važnih informacija. Govori vam da je poslužitelj pokrenut, govori vam koliko je dugo trajao proces inicijalizacije i govori vam na kojem se portu aplikacija izvodi (8080, prema zadanim postavkama). Stoga, ako navigirate do http://localhost: 8080/kupac vidjet ćete sljedeći izlaz u svom pregledniku:
Sada možete dizajnirati svoj prikaz aplikacije
Još jedna važna datoteka u strukturi projekta koju biste mogli primijetiti je šablone mapa. U idealnom slučaju, OnlineShopaholicsApplication klasa bi trebala služiti kao kontroler koji obrađuje zahtjeve za različite poglede. Stoga, u potpunoj aplikaciji, klasa kontrolera ne bi trebala sadržavati tekst koji će se prikazati u prikazu njenog zahtjeva.
Umjesto toga, morat ćete stvoriti datoteke predložaka pomoću HTML-a i smjestiti ih u mapu predložaka vaše Spring aplikacije.