Како зависност инекција работи во пролет?

Dependency Injection

Преглед

Пролет грав инјектирање е, исто така, популарно познат како "зависност инекција (DI)’. Срцето на пролет рамка е "инверзија на контрола (МОК)’ и DI е дел спроведувањето на МОК. Ќе започнеме нашата дискусија со претпоставката дека концептот и целта на МОК, а DI е веќе знаете.

In this article, ние ќе се фокусира на различни видови на пролет грав инјекции со некои практични примери кодирање.








зависност вбризгување

Пролет грав инјекции може да се врши во два главни начини, е познат како инженеринг-базирани ДИ, а другиот е познат како сетер со седиште DI. Во следниве пододдели ние ќе ги провери како тие може да се постигне.

Изведувач Врз основа DI

Во конструктор врз DI, зависности се вбризгува преку конструктори. Секој аргумент на градителот е зависност објект / грав. Садот за пролет повикува на конструктори со аргументите.

Дозволете ни да се провери еден пример. Постојат два типа, one is the земја класа, а другиот е држава класа. The земја класа има зависност од држава класа. So, ќе помине на зависноста на земја класа со својата конструктор (as shown below).

Listing 1: земја класа

пакет com.techalpine.spring;

јавни класа Земја {

приватна држава на државата;

јавните Земја(Државниот државата) {

System.out.println(“Во внатрешноста на земја конструкторот.” );

this.state = држава;

}

јавни празнина stateName() {

state.stateName();

}

}








Now, оваа зависност може да се користи за да се јавите на различни методи.

Следниве е држава класа кодот фрагменти.

Listing 2: Државниот класа

пакет com.techalpine.spring;

јавни класа држава {

јавните држава(){

System.out.println(“Во државните конструкторот.” );

}

јавни празнина stateName() {

System.out.println(“Во државните име: West Bengal”);

}

}

Следниве е XML конфигурациската датотека да жица оние грав и нивните зависности. проект на грав ("StateBean") of the држава класа се користи како референца конструктор аргумент во земја класата дефиниција грав. Now, зрната се дефинирани и жичен заедно.

Listing 3: конфигурациската датотека XML

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

<грав 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”>

<!– Дефиниција за земјата грав –>

<грав id =”countryBean” class =”com.techalpine.spring.Country”>

<конструктор-ARG ref =”stateBean”/>

</грав>

<!– Дефиниција за државни грав –>

<грав id =”stateBean” class =”com.techalpine.spring.State”>

</грав>

</грав>

Следниве е главна класа конструктор да се тестира со седиште грав инјекција.

Listing 4: Главната датотека апликација

пакет com.techalpine.spring;

import org.springframework.context.ApplicationContext;

увоз org.springframework.context.support.FileSystemXmlApplicationContext;

јавни класа TestBeanInjection {

public static void main(Стринг[] аргументи) {

ApplicationContext контекст = new FileSystemXmlApplicationContext(

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

Земја countryobj = (земја)context.getBean(“countryBean”);

countryobj.stateName();

}

}








Now, се кандидира на класа како апликација за самостојна и таа ќе се појави следниов излез на конзолата.

Во државните конструктор
Во внатрешноста на земја конструктор
Во државните име: West Bengal

Сетови бази DI

Во сетер врз DI, зависности се пренесуваат преку словослагател методи. Пролет сад повикува оние словослагател методи за показ на грав. Here, механизмот и компоненти се речиси слични на DI конструктор врз. Единствената разлика е во, во донесувањето на зависности и конфигурацијата на XML. Во сетер врз инјектирање, <сопственост> тагови кои се користат наместо <конструктор-arg> tag.








Заклучок

Во оваа статија ние ги објасни начините како може да се инјектира пролет грав. Не постои јасен правило кога да се користи сетер со седиште или конструктор врз DI. Ние обично одат за изведувачот врз ДИ кога зависности се задолжителни, и одберете сетер со седиште ДИ кога зависности се опционални. Но, комбинации од двете исто така е дозволено.

 

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

Enjoy this blog? Please spread the word :)

Follow by Email
LinkedIn
LinkedIn
Share