Jak závislost vstřikování pracuje na jaře?

Dependency Injection

Přehled

vstřikování jarní bean je také známá jako "závislost injekce (OF)’. Srdcem rámce jaro je "Inversion of Control (MOV)’ a DI je realizační část MOV. Začneme naši diskusi s předpokladem, že pojem a účel MOV a DI je již vědí.

In this article, zaměříme na různé typy Jarní bean injekcí s některými praktickými příklady kódovacích.








závislost injekce

Pružina fazole injekce může být provedena ve dvou hlavních způsobů, jeden je známý jako konstruktér na bázi DI a druhý je známý jako setr na bázi DI. V následujících odstavcích se budeme kontrolovat, jak tohoto cíle lze dosáhnout.

Konstruktér Based DI

V DI konstruktor bázi, Závislosti se vstřikuje konstruktérů. Každý argument konstruktoru je objekt závislost / bean. Kontejner Jarní vyvolá konstruktory s argumenty.

Pojďme zjistit jeden příklad. Existují dva druhy, jeden je Země třídy a druhý z nich je Stát třída. The Země třída má závislost na Stát třída. So, mineme závislost k Země třída prostřednictvím jeho konstruktor (as shown below).

Listing 1: třída Země

balíček com.techalpine.spring;

public class Země {

soukromá State stav;

veřejné země(stát stát) {

System.out.println(“Uvnitř Země konstruktoru.” );

this.state = stav;

}

public void StateName() {

state.stateName();

}

}








Now, tato závislost může být použita pro volání různé metody.

Následující je Stát třída kousky kódu.

Listing 2: Státní třída

balíček com.techalpine.spring;

public class stát {

veřejný stát(){

System.out.println(“Uvnitř státní konstruktoru.” );

}

public void StateName() {

System.out.println(“Uvnitř názvem Státní: West Bengal”);

}

}

Následující text je konfigurační soubor XML zapojit ty fazole a jejich závislosti. Bean id ("StateBean") of the Stát třída je používána jako odkaz na konstruktor argument ve Země Definice třídy bean. Now, fazole jsou definovány a propojovat.

Listing 3: Konfigurační soubor XML

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

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

<!– Definice pro Country bean –>

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

<konstruktor-Arg ref =”stateBean”/>

</fazole>

<!– Definice pro státní bean –>

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

</fazole>

</fazole>

Následující je hlavní třída testovat injekci fazole konstruktoru bázi.

Listing 4: Hlavní soubor aplikace

balíček com.techalpine.spring;

import org.springframework.context.ApplicationContext;

import org.springframework.context.support.FileSystemXmlApplicationContext;

public class TestBeanInjection {

public static void main(Řetěz[] args) {

ApplicationContext kontext = new FileSystemXmlApplicationContext(

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

Země countryobj = (Země)context.getBean(“countryBean”);

countryobj.stateName();

}

}








Now, spustit třídu jako aplikace samostatná a ukáže následující výstup na konzoli.

Uvnitř státní konstruktoru
Uvnitř Země konstruktoru
Uvnitř názvem Státní: West Bengal

Soupravy Základny DI

V DI setr bázi, závislosti procházejí nastavovací metody. Jarní kontejner vyvolá takové nastavovací metody vytváření instancí fazole. Here, mechanismus a komponenty jsou téměř podobné konstruktoru založené na DI. Jediný rozdíl je,, v procházení závislostí a konfiguraci XML. V injekce seřizovač bázi, <majetek> Značky se používají místo <konstruktor-arg> tag.








Závěr

V tomto článku jsme vysvětlili způsoby, jak může být jarní boby injekčně. Neexistuje žádné jednoznačné pravidlo, kdy je třeba použít seřizovač bázi nebo konstruktér na základě DI. Jsme obecně jít na konstruktoru založené DI, když se závislostí jsou povinné, a zvolte setr založené na DI, když se závislostí jsou volitelné. Ale kombinace obou jsou také povoleny.

 

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