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.