Avhengighetsinjeksjon eller IOC er et kjernekonsept for fjærrammen som hjelper til med å administrere bønneobjekter i applikasjonen. Avhengighetsinjeksjon, eller DI som navnet antyder, administrerer de avhengige objektene og gjør koden vår løst koblet.
For eksempel kan en fjærapplikasjon bygge flere moduler avhengig av hverandre for å danne en fullt fungerende applikasjon. De avhengige objektene må gi sin forekomst i løpet av kjøretid ellers kan søknaden bryte sammen. Så som et rammeverk håndterer Spring denne situasjonen og gir bønneobjekter ved kjøretid.
IOC (inversjon av kontroll) gjør denne oppgaven, jeg.e., injiserer avhengigheter under oppretting av bønne. Det er en kjernebeholder som oppretter, konfigurerer, administrerer objekter og til og med administrerer hele livssyklusen til et objekt.
Våren er hovedsakelig kategorisert som en Konstruktørbasert avhengighetsinjeksjon og en Setter-basert Avhengighetsinjeksjon.
I denne artikkelen vil vi Lær først om konstruktørbasert Avhengighetsinjeksjon og flyttingen til setterbasert i neste emne.
La oss starte med en Maven-basert vårapplikasjon som inneholder følgende Java- og Config-filer.
// Ansatt.Java
Det er en enkel bønneklasse som inneholder to egenskaper og setter-getter-metoder.
Pakke com.Linuxhint.bønner;
Import org.Springframework.stereotype.Komponent;
@Komponent
offentlige klasseansatte
privat int ID;
privat strengnavn;
public String getName ()
Returnavn;
public void setName (strengnavn)
dette.Navn = navn;
public int getId ()
Retur ID;
public void setid (int id)
dette.id = id;
// ProjectManager.Java
Her opprettet vi en annen bønne som inneholder noen getter-setter-metoder, og det viktige poenget er å observere ProjectManager () -konstruktøren som fungerer som en konstruktørbasert DI. Det skaper et bønneobjekt av ansatteklassen mens du laster til applikasjonskonteksten.
Pakke com.Linuxhint.bønner;
Import org.Springframework.stereotype.Komponent;
@Komponent
offentlig klasse ProjectManager
privat ansatt;
public ProjectManager (ansattes ansatt)
dette.ansatt = ansatt;
public void setInfo (int id, strengnavn)
ansatt.Setid (id);
ansatt.setName (navn);
public String getInfo ()
Returner “ID =“+Ansatt.getid ()+”\ nname =“+ansatt.getName ();
// SpringApp.Java
Dette er hovedklassen som laster SpringConfig. Her brukte vi GetBean () -metoden for å få et objekt av ProjectManager Class. Etter det setter vi og får verdier for dette objektet.
Pakke com.Linuxhint;
Import org.Springframework.kontekst.merknad.AnnotationConfigApplicationContext;
import com.Linuxhint.bønner.ProjectManager;
offentlig klasse SpringApp
public static void main (String [] args)
AnnotationConFigApplicationContext AC = Ny AnnotationConfigApplicationContext (SpringConfig.klasse);
ProjectManager PM = AC.GetBean (ProjectManager.klasse);
PM.SetInfo (102, “Roman”);
Strengresultat = PM.få informasjon();
System.ute.println (resultat);
Ac.Lukk();
// Springconfing.Java
Dette er konfigurasjonsklassen som hjelper til med å konfigurere applikasjonen. Det er viktig mens du konfigurerer applikasjoner ved hjelp av merknader.
Pakke com.Linuxhint;
Import org.Springframework.kontekst.merknad.Komponentercan;
Import org.Springframework.kontekst.merknad.Konfigurasjon;
@Configuration
@Componentscan (“com.Linuxhint.*”)
offentlig klasse SpringConfig
// pom.XML
Denne filen inneholder maven -avhengigheter for vårprosjektet.
4.0.0 com.Linuxhint SpringApp 0.0.1-SNAPSHOT SpringApp En enkel vårapp org.Springframework Spring-core $ våren.versjon org.Springframework Spring-Context $ våren.versjon Javax.merknad Javax.Merknad-api 1.3.2 5.2.8.UTGIVELSE
Prosjektstruktur
Etter å ha opprettet alle filene og koden, vises prosjektstrukturen vår nedenfor:
Kjør søknaden
Kjør nå applikasjonen, og den må vise følgende utgang i konsollvinduet:
ID = 102
Navn = Roman
Konfigurasjon ved hjelp av XML -kode
Du kan gjøre dette hvis du vil konfigurere applikasjonen din ved å bruke XML -koden. Imidlertid er XML -konfigurasjon gammel mote måte å gjøre det, men støttes fremdeles av vårrammen. Du har et valg for å konfigurere applikasjonen din, enten ved hjelp av XML- eller Java -merknader.
I XML -saken trenger vi bare å opprette en fil ApplicationContext.XML og les den inn i SpringApp klassefil. Din ApplicationContext.XML Filen må inneholde følgende XML -kode:
// ApplicationContext.XML
xmlns: xsi = "http: // www.W3.org/2001/xmlschema-instans "
xmlns: p = "http: // www.Springframework.org/skjema/p "
XSI: schemalocation = "http: // www.Springframework.org/skjema/bønner
http: // www.Springframework.org/skjema/bønner/fjærbønner-3.0.XSD ">klasse = "com.Linuxhint.bønner.ProjectManager " />
Her brukes taggen til å spesifisere bønneklassen, og IDen spesifiserer bønneforekomsten. Taggen spesifiserer konstruktøravhengigheten og taggen for å injisere objektet i konstruktøren.
Konklusjon
I denne artikkelen har vi lært om den konstruktørbaserte fjæravhengighetsinjeksjonen. Vi lærte konfigurasjonen ved å bruke Java -merknader og XML begge deler. Siden det er et kjernekonsept for vårrammen, må du lære det med det løpende eksemplet som vi har forklart.