Prehľad
vstrekovanie jarný bean je tiež známa ako "závislosť injekcie (OF)’. Srdcom rámca jar je "Inversion of Control (MOV)’ a DI je realizačná časť MOV. Začneme našu diskusiu s predpokladom, že pojem a účel MOV a DI je už vedia.
In this article, zameriame na rôzne typy Jarná bean injekcií s niektorými praktickými príkladmi kódovacích.
závislosť injekcie
Pružina fazuľa injekcia môže byť vykonaná v dvoch hlavných spôsobov, jeden je známy ako konštruktér na báze DI a druhý je známy ako seter na báze DI. V nasledujúcich odsekoch sa budeme kontrolovať, ako tento cieľ možno dosiahnuť.
Konštruktér Based DI
V DI konštruktor báze, Závislosti sa vstrekuje konštruktérov. Každý argument konstruktoru je objekt závislosť / bean. Kontajner Jarná vyvolá konštruktory s argumentmi.
Poďme zistiť jeden príklad. Existujú dva druhy, one is the Krajina triedy a druhý z nich je stáť trieda. The Krajina trieda má závislosť na stáť trieda. So, minieme závislosť k Krajina trieda prostredníctvom jeho konštruktor (ako je uvedené nižšie).
Listing 1: trieda Krajina
balíček com.techalpine.spring;
public class Krajina {
súkromná State stav;
verejné krajiny(stáť štát) {
System.out.println(“Vnútri Zeme konstruktoru.” );
this.state = stav;
}
public void StateName() {
state.stateName();
}
}
Now, táto závislosť môže byť použitá pre volanie rôzne metódy.
nasledujúce je stáť trieda kúsky kódu.
Listing 2: štátne trieda
balíček com.techalpine.spring;
public class stáť {
verejný stáť(){
System.out.println(“Vnútri štátnej konstruktoru.” );
}
public void StateName() {
System.out.println(“Vnútri názvom Štátna: West Bengal”);
}
}
Nasledujúci text je konfiguračný súbor XML zapojiť tie fazuľa a ich závislosti. bean id ("StateBean") of the stáť trieda je používaná ako odkaz na konštruktor argument vo Krajina Definícia triedy bean. Now, fazuľa sú definované a prepájať.
Listing 3: Konfiguračný súbor XML
<?xml version=”1.0″ encoding=”UTF-8″?>
<fazuľa 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”>
<!– Definícia pre Country bean –>
<bean id =”countryBean” class =”com.techalpine.spring.Country”>
<konštruktor-Arg ref =”stateBean”/>
</fazuľa>
<!– Definícia pre štátnu bean –>
<bean id =”stateBean” class =”com.techalpine.spring.State”>
</fazuľa>
</fazuľa>
Nasledujúce je hlavná trieda testovať injekciu fazuľa konstruktoru báze.
Listing 4: Hlavný súbor aplikácie
balíček com.techalpine.spring;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.FileSystemXmlApplicationContext;
public class TestBeanInjection {
public static void main(Reťaz[] args) {
ApplicationContext kontext = new FileSystemXmlApplicationContext(
“Webcontent / WEB-INF / beanConfig.xml”);
Krajina countryobj = (Krajina)context.getBean(“countryBean”);
countryobj.stateName();
}
}
Now, spustiť triedu ako aplikácia samostatná a ukáže nasledujúci výstup na konzolu.
Vnútri štátnej konstruktoru
Vnútri Krajina konstruktoru
Vnútri názvom Štátna: West Bengal
Súpravy Základne DI
V DI seter báze, závislosti prechádzajú nastavovacie metódy. Jarné kontajner vyvolá také nastavovacie metódy vytvárania inštancií fazuľa. Here, mechanizmus a komponenty sú takmer podobné konstruktoru založené na DI. Jediný rozdiel je,, v prehliadania závislostí a konfiguráciu XML. V injekcie nastavovač báze, <nehnuteľnosť> Značky sa používajú namiesto <konštruktor-arg> tag.
Záver
V tomto článku sme vysvetlili spôsoby, ako môže byť jarné bôby injekčne. Neexistuje žiadne jednoznačné pravidlo, kedy je treba použiť nastavovač báze alebo konštruktér na základe DI. Sme všeobecne ísť na konstruktoru založené DI, keď sa závislosťou sú povinné, a vyberte seter založené na DI, keď sa závislosťou sú voliteľné. Ale kombinácia oboch sú tiež povolené.