Spring er et Java-rammeverk som bruker en beholder til å lage og administrere de forskjellige komponentene i en applikasjon. Beholderen (ofte kalt Spring-applikasjonskonteksten) kobler sammen de forskjellige komponentene i en applikasjon ved å bruke designmønsteret for avhengighetsinjeksjon (DI). DI lar deg bruke et objekt i en avhengig klasse, uten å opprette en ny forekomst av det innenfor den avhengige klassen.
Så i stedet for å la hver komponent lage nye forekomster av de de er avhengige av, oppretter og vedlikeholder Springs container en forekomst av hver av komponentene den er vert for. Denne beholderen injiserer deretter en forekomst av en komponent i alle de andre komponentene som trenger den.
Utforsker vårens kjernefunksjoner
Spring-rammeverket har rundt 20 godt organiserte moduler som spiller en integrert rolle i dens evne til å lage og administrere applikasjoner. Basert på hovedtrekkene til disse modulene kan du gruppere dem i fem kategorier:
- Kjernebeholder
- Datatilgang/Integrasjon
- Web
- Aspektorientert programmering og instrumentering
- Test
Fjærbeholder
Spring bruker en beholder til å lage og administrere forskjellige komponenter (som den kaller bønner) i en applikasjon. Beholderen er tilgjengelig gjennom Springs ApplicationContext-grensesnitt, som lar deg instansiere, konfigurere og sette sammen objekter (eller bønner). Springs container kan utføre sin funksjon ved hjelp av konfigurasjonsmetadata.
Disse konfigurasjonsmetadataene kan ha flere forskjellige former, men dens typiske form er XML. I tillegg til bønner, består Springs beholder også av en kjerne-, kontekst- og en uttrykksmodul.
Spring Data Access/Integration
Datatilgang/integrasjonsaspektet til vårrammeverket består av flere undermoduler: JDBC, ORM, OXM, JMS og transaksjon. Disse modulene fungerer sammen for å administrere data som applikasjonen din bruker.
Vårweb
Webfunksjonen til Spring-applikasjonen gir nettorientert integrasjon for applikasjonen din. I tillegg til nettorientert integrasjon, tilbyr Spring en webservletmodul. Webservletmodulen er ansvarlig for Spring's implementering av modell-visningskontroller (MVC)..
Spring Aspect-Oriented Programmering (AOP)
Springs AOP-rammeverk er en annen av nøkkelkomponentene. Selv om AOP-rammeverket ikke er avgjørende for Springs containerfunksjon, utfyller det containeren ved å være en dyktig mellomvareløsning. En av AOP-rammeverkets nøkkelfunksjoner er at det gir deklarative bedriftstjenester for applikasjonen din, nemlig administrasjon av erklæringstransaksjoner.
Deklarativ transaksjonsstyring er en ønskelig tilnærming til programvareutvikling fordi den har minimal innvirkning på applikasjonskoden.
Vårprøve
Våren legger stor vekt på applikasjonstesting. Testmodulen støtter integrasjonstesting og enhetstesting ved bruk av JUnit eller TestNG.
Opprette en vårapplikasjon
Det er flere måter å lage kjeleplaten for en ny Spring-applikasjon. De ulike tilnærmingene inkluderer:
- Fra nettapplikasjonen (eller Spring Initializr) på Springs offisielle nettside.
- Lage en prosjektkatalogstruktur manuelt og bygge spesifikasjoner.
- Med Spring Tool Suite.
- Fra kommandolinjen med Spring Boot kommandolinjegrensesnitt.
- Med Eclipse IDE.
- Med IntelliJ IDEA IDE.
Den mest populære tilnærmingen er Spring Initializr:
Som du kan se fra bildet ovenfor, har du flere avgjørelser å ta. Den første er typen prosjekt du vil initialisere. Spring gir tre alternativer: Gradle for Groovy, Gradle for Kotlin eller Maven. Denne eksempelapplikasjonen vil bruke et Maven-prosjekt.
De andre alternativene du må velge er språket (Java), versjonen av Spring Boot du vil bruke, og prosjektets metadata. Spring har allerede noen dummy-data i sine fem felt som vil hjelpe deg med å lage en prøveapplikasjon. Du må imidlertid oppdatere disse feltene med prosjektspesifikke data, siden disse metadataene vil beskrive Spring-applikasjonen din, inkludert Spring-bønner og deres metoder.
Deretter må du velge emballasjen du vil ha filene dine i (krukke eller krig). Deretter kan du velge hvilken versjon av Java du har på enheten. Den endelige avgjørelsen du må ta er hvilken type avhengigheter du vil ha for søknaden din.
Spring gir flere avhengigheter som du kan bruke til å legge til egenskaper i applikasjonen din. For å legge til en ny avhengighet til applikasjonen din, klikk ganske enkelt på knappen legg til avhengigheter til høyre for Spring Initializr. Denne handlingen vil generere følgende overlegg på skjermen din:
For denne eksempelapplikasjonen er den eneste avhengigheten du trenger, Spring Web. Denne avhengigheten lar deg bygge webapplikasjoner ved å bruke MVC-arkitekturen. Etter at du har valgt alle avhengighetene du ønsker å bruke i applikasjonen din, fortsett å generere et klikk. Dette vil laste ned prosjektets kjeleplate for deg.
Nå har du et Spring Boot-prosjekt (som er et av Springs biblioteker). Det siste trinnet er å importere prosjektet til din foretrukne IDE. Vårprosjektet ditt vil ha følgende prosjektstruktur:
Dette er en normal Maven-prosjektstruktur, og det er flere viktige filer du må bli kjent med.
- Pom.xml: Dette inneholder konfigurasjonsdata for Spring-applikasjonen.
- OnlineShopaholicsApplication.java: Dette er Spring Boot-hovedklassen, som kjører applikasjonen.
- OnlineShopaholicsApplicationTest.java: Dette er en JUnit test klasse som sikrer at Spring-applikasjonskonteksten (eller containeren) lastes inn riktig.
Kjøre en vårapplikasjon
Springs bootstrap-klasse, som i dette tilfellet er OnlineShopaholicsApplication-klassen, har følgende innledende kode:
pakke com.onlineshopaholics;
importorg.springrammeverk.støvel.SpringApplication;
importorg.springrammeverk.støvel.autoconfigure.SpringBootApplication;
@SpringBootApplication
offentligklasseOnlineShopaholics-applikasjon{
offentligstatisktomromhoved-(String[] args){
SpringApplication.run (OnlineShopaholicsApplication.klasse, args);
}
}
En av de viktigste aspektene ved koden ovenfor er @SpringBootApplication merknad, som er en sammensatt merknad som lar applikasjonen din få tilgang til funksjonene til tre andre merknader:
- @EnableAutoconfiguration: Denne merknaden aktiverer automatisk oppstartskonfigurasjon. Dette betyr at den ber Spring boot om å konfigurere enhver komponent som den tror applikasjonen din trenger for å fungere.
- @ComponentScan: Denne merknaden lar deg aktivere komponentskanning. Denne funksjonen er viktig, den lar Spring automatisk oppdage og registrere andre kommenterte komponenter for bruk av Spring-applikasjonskonteksten (eller containeren).
- @SpringBootConfiguration: Dette er en spesialisert form for @Configureation-kommentaren, som lar deg registrere bønner (eller objekter) i Spring-applikasjonskonteksten.
Det andre viktige aspektet ved koden ovenfor er hoved() metoden, kjører den applikasjonen din. Når applikasjonen kjøres nå, starter den ganske enkelt serveren. Så hvis du vil legge til mer funksjonalitet til applikasjonen, må du oppdatere koden:
pakke com.onlineshopaholics;
importorg.springrammeverk.støvel.SpringApplication;
importorg.springrammeverk.støvel.autoconfigure.SpringBootApplication;
importorg.springrammeverk.web.binde.kommentar.GetMapping;
importorg.springrammeverk.web.binde.kommentar.RequestParam;
importorg.springrammeverk.web.binde.kommentar.RestController;@SpringBootApplication
@RestController
offentligklasseOnlineShopaholics-applikasjon{
offentligstatisktomromhoved-(String[] args){
SpringApplication.run (OnlineShopaholicsApplication.klasse, args);
}
@GetMapping("/kunde")
offentlig String Velkommen(@RequestParam (verdi = "Navn", standardverdi = "Kunde") String Navn) {
komme tilbakeString.format("Velkommen %s!", Navn);
}
}
Spring Boot-applikasjonen har nå tre nye merknader:
- @RestController: Denne merknaden markerer klassen som en kontroller, så hver metode i klassen ovenfor (bortsett fra main()) vil returnere et domeneobjekt i stedet for en visning.
- @GetMapping: Denne merknaden kartlegger HTTP GET-forespørsler til spesifikke overskriftsmetoder. Så hver gang du oppretter en forespørsel for "/customer" i nettleseren, vil Welcome()-metoden håndtere forespørselen ved å returnere en strengverdi.
- @RequestParam: Denne merknaden indikerer at en metodeparameter skal være bundet til en webforespørselsparameter.
Med den oppdaterte koden din Spring OnlineShopaholics-applikasjon har nå en kundeside som du kan se i nettleseren din. Kjøring av applikasjonen vil starte serveren og produsere utdata i konsollen.
Det er mye viktig informasjon i produksjonen. Den forteller deg at serveren kjører, den forteller deg hvor lang tid initialiseringsprosessen tok, og den forteller deg hvilken port applikasjonen kjører på (8080, som standard). Derfor, hvis du navigerer til http://localhost: 8080,-/kunde du vil se følgende utgang i nettleseren din:
Nå kan du designe applikasjonsvisningen din
En annen viktig fil i prosjektstrukturen som du kanskje legger merke til er maler mappe. Ideelt sett er OnlineShopaholics-applikasjon klasse skal fungere som en kontroller, som håndterer forespørsler om forskjellige visninger. Derfor, i en komplett applikasjon, bør ikke kontrollerklassen inneholde teksten som vil vises i visningen av forespørselen.
I stedet må du lage malfiler ved hjelp av HTML og plassere dem i malmappen i Spring-applikasjonen.