Kuidas sõltuvust süsti töötab Spring?

Dependency Injection

Ülevaade

Kevad oa süsti ka rahva tuntud "Sõltuvus Injection (OF)’. Südames Spring raamistik on "inversioon kontroll (KübI)’ ja DI on rakendamise osas KübI. Alustame meie arutelu eeldusel, et mõiste ja eesmärk KübI ja DI on juba tean.

In this article, keskendume erinevate Spring oa süsti mõned praktilised kodeerimine näited.








sõltuvus Injection

Spring uba süstid saab läbi kaks suurt viise, üks tuntakse Konstruktorite põhinev DI ja teine ​​tuntakse setter põhinev DI. Järgnevates alapunktides me kontrollime kuidas neid saavutada.

Ehitaja Based DI

Ühes ehitaja põhineb DI, sõltuvused süstitakse läbi konstruktorite. Iga argument ehitaja on sõltuvus objekti / uba. Kevadine konteiner viitab konstruktorite argumendid.

Olgem vaadata üks näide. On kahte klassi, üks on Riik klassi ja teine ​​on riik klass. The Riik klassis on sõltuvuses riik klass. So, meil läheb sõltuvust kuni Riik klassi kaudu ehitaja (as shown below).

Listing 1: Riik klassi

pakett com.techalpine.spring;

avalik klassi Riik {

era- State'i;

avaliku Riik(State'i) {

System.out.println(“Toas Riik ehitaja.” );

this.state = riik;

}

public void stateName() {

state.stateName();

}

}








Now, seda sõltuvust saab kasutada helistada erinevaid meetodeid.

Pärast on riik klassi koodilõigud.

Listing 2: riigi klassi

pakett com.techalpine.spring;

public class riik {

avaliku riik(){

System.out.println(“Toas riik ehitaja.” );

}

public void stateName() {

System.out.println(“Toas riigi nimi: West Bengal”);

}

}

Pärast on XML-i juhe need oad ja nende sõltuvuste. Bean id ("StateBean") of the riik klassi kasutatakse konstruktori argument viide Riik klassi uba määratlus. Now, oad on määratletud ja traadiga kokku.

Listing 3: XML-i

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

<oad 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”>

<!– Määratlus Riik uba –>

<uba id =”countryBean” class =”com.techalpine.spring.Country”>

<ehitaja-Arg ref =”stateBean”/>

</uba>

<!– Mõiste riikliku uba –>

<uba id =”stateBean” class =”com.techalpine.spring.State”>

</uba>

</oad>

Pärast on peamine klassi testida ehitaja põhinev oa süsti.

Listing 4: Peamised taotluse faili

pakett com.techalpine.spring;

import org.springframework.context.ApplicationContext;

import org.springframework.context.support.FileSystemXmlApplicationContext;

avalik klassi TestBeanInjection {

avaliku staatilise void main(String[] args) {

ApplicationContext kontekstis = uus FileSystemXmlApplicationContext(

“Saitide vaatamise / WEB-INF / beanConfig.xml”);

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

countryobj.stateName();

}

}








Now, käivitada klassi kui autonoomsena ja see näitab järgmise väljundi konsooli.

Toas riik ehitaja
Toas Riik ehitaja
Toas riigi nimi: West Bengal

Komplektid alused DI

Ühes setter põhineb DI, sõltuvused on läbinud setter meetodid. Kevad konteiner viitab neile, setter meetodid algväärtustan oad. Here, mehhanismi ja komponendid on peaaegu sarnane ehitaja põhineb DI. Ainus erinevus on see, aasta möödumine sõltuvused ja XML konfiguratsiooni. Ühes setter põhineb süsti, <kinnisvara> silte asemel kasutatakse <ehitaja-arg> tag.








Järeldus

Käesolevas artiklis me oleme selgitanud, kuidas kuidas kevadel oad võib süstida. Ei ole selge reegel, kui kasutada setter aluseks või konstruktori põhineb DI. Me üldiselt minna ehitaja põhineb DI kui sõltuvused on kohustuslikud, ja valige setter põhinev DI kui sõltuvused on vabatahtlik. Aga mõlemi kombinatsioone Lubatud on ka.

 

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