Hvordan avhengighet injeksjon fungerer i Spring?

Dependency Injection

Oversikt

Spring bean injeksjon er også populært kjent som "Dependency Injection (DI)’. Hjertet av Spring rammeverket er "Inversjon av kontroll (IOC)’ og DI er gjennomføringen del av IOC. Vi starter vår diskusjon med antagelsen om at konseptet og formålet med IOC og DI er allerede kjenner.

In this article, Vi vil fokusere på ulike typer av Spring bønne injeksjoner med noen praktiske koding eksempler.








Dependency Injection

Fjær bønne injeksjoner kan utføres på to viktige måter, en som er kjent som Konstruktør baserte DI og den andre er kjent som setter basert DI. I de følgende underkapitlene vil vi sjekke hvordan disse kan oppnås.

Constructor Basert DI

I en konstruktør basert DI, avhengig injiseres gjennom konstruktører. Hvert argument for konstruktøren er en avhengighet objekt / bønne. The Spring container påkaller konstruktører med argumentene.

La oss sjekke ett eksempel. Det er to klasser, one is the Land klasse og den andre er Stat klasse. Den Land klasse har en avhengighet av Stat klasse. So, Vi vil passere avhengigheten til Land klassen gjennom sin konstruktør (as shown below).

Listing 1: land klasse

pakke com.techalpine.spring;

public class Land {

privat State state;

offentlig Land(State state) {

System.out.println(“Inne Land konstruktør.” );

this.state = state;

}

public void stateName() {

state.stateName();

}

}








Now, denne avhengigheten kan brukes til å kalle forskjellige fremgangsmåter.

Følgende er Stat klasse kodesnutter.

Listing 2: State klasse

pakke com.techalpine.spring;

public class State {

offentlig State(){

System.out.println(“Inne State konstruktør.” );

}

public void stateName() {

System.out.println(“Inne State navn: West Bengal”);

}

}

Følgende er XML-konfigurasjonsfil å koble disse bønner og deres avhengig. Bønne id ('StateBean') of the Stat klasse blir brukt som en konstruktør argument referanse i Land klasse bønne definisjon. Now, bønner er definert og kablet sammen.

Listing 3: XML-konfigurasjonsfil

<?xml version=”1.0″ encoding=”UTF-8″?>

<bønner xmlns =”http://www.springframework.org/schema/beans”

xmlns:xsi=”http://www.w3.org/2001/XMLSchema-instance”

xsi:schemaLocation=”http://www.springframework.org/schema/beans

http://www.springframework.org/schema/beans/spring-beans-3.2.xsd”>

<!– Definisjon for Country bønne –>

<bønne id =”countryBean” class =”com.techalpine.spring.Country”>

<konstruktør-arg ref =”stateBean”/>

</bønne>

<!– Definisjon for State bønne –>

<bønne id =”stateBean” class =”com.techalpine.spring.State”>

</bønne>

</bønner>

Følgende er den viktigste klassen for å teste konstruktøren baserte bønne injeksjon.

Listing 4: Hovedprogramfilen

pakke com.techalpine.spring;

import org.springframework.context.ApplicationContext;

import org.springframework.context.support.FileSystemXmlApplicationContext;

public class TestBeanInjection {

public static void main(String[] args) {

ApplicationContext sammenheng = ny FileSystemXmlApplicationContext(

“WebContent / WEB-INF / beanConfig.xml”);

Land countryobj = (Land)context.getBean(“countryBean”);

countryobj.stateName();

}

}








Now, kjøre klassen som et frittstående program, og det vil vise følgende resultat på konsollen.

Inne State konstruktør
Inne Land konstruktør
Inne State navn: West Bengal

Setter Bases DI

In a Setter based DI, avhengigheter blir ført gjennom setter-metoder. Spring container påkaller de setter-metoder på å bruke bønner. Here, mekanismen og komponentene er nesten lik til konstruktøren basert DI. Den eneste forskjellen er, i bestått av avhengigheter og XML konfigurasjon. I en setter basert injeksjon, <eiendom> kodene brukes i stedet for <konstruktør-arg> tag.








Konklusjon

I denne artikkelen har vi forklart hvordan hvordan våren bønner kan injiseres. Det er ingen entydig regel når du skal bruke setter baserte eller konstruktør basert DI. Vi vanligvis går for konstruktøren basert DI når avhengigheter er obligatoriske, og velg setter baserte DI når avhengigheter er valgfrie. Men en kombinasjon av begge deler er også tillatt.

 

Tagged on: , ,
============================================= ============================================== Buy best TechAlpine Books on Amazon
============================================== ---------------------------------------------------------------- electrician ct chestnutelectric
error

Enjoy this blog? Please spread the word :)

Follow by Email
LinkedIn
LinkedIn
Share