Како зависност убризгавање ради у пролеће?

Dependency Injection

Преглед

Пролеће пасуљ убризгавање је такође популарно познат као "Депенденци Ињецтион (DI)’. Срце Спринг оквира је "инверзија Цонтрол (ИоЦ)’ а ДИ је део имплементација ИОЦ. Ми ћемо почети нашу дискусију са претпоставком да је концепт и сврха МОК-а ДИ је већ знају.

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








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

Спринг беан ињекције могу се обавити у два главна начина, један је познат као Конструктор седиштем ДИ и други је познат као Сеттер заснованом ДИ. У наредним под секцијама ћемо проверити како се ово може постићи.

Конструктор базиран ди

У ДИ конструктор са седиштем у, зависности се убризгава кроз грађевинаре. Сваки аргумент конструктора је објекат зависност / пасуљ. Контејнер пролеће позива у конкуренцији конструктора са аргументима.

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

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

пакет цом.тецхалпине.спринг;

јавни час Држава {

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

јавни Држава(стање стање) {

Систем.оут.принтлн(“Унутра Цоунтри конструктора.” );

тхис.стате = стање;

}

воид статеНаме() {

стате.статеНаме();

}

}








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

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

Listing 2: стате класа

пакет цом.тецхалпине.спринг;

јавни час државе {

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

Систем.оут.принтлн(“Унутар државне конструктора.” );

}

воид статеНаме() {

Систем.оут.принтлн(“Унутар државне име: West Bengal”);

}

}

Следи фајл КСМЛ конфигурациони однети те пасуљ и њихове зависности. Пасуља ИД ('СтатеБеан') of the Држава класа се користи као конструктор аргумент референце у земља класа пасуљ дефиниција. Now, пасуљ су дефинисани и повезао.

Listing 3: КСМЛ конфигурациони фајл

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

<пасуљ кмлнс =”хттп://ввв.спрингфрамеворк.орг/сцхема/беанс”

xmlns:xsi=”хттп://www.w3.org/2001/XMLSchema-instance”

xsi:schemaLocation=”хттп://ввв.спрингфрамеворк.орг/сцхема/беанс

хттп://ввв.спрингфрамеворк.орг/сцхема/беанс/спринг-беанс-3.2.ксд”>

<!– Дефиниција за земљу пасуља –>

<пасуљ? ид =”цоунтриБеан” цласс =”цом.тецхалпине.спринг.Цоунтри”>

<конструктор-арг реф =”статеБеан”/>

</пасуљ>

<!– Дефиниција за државне пасуља –>

<пасуљ? ид =”статеБеан” цласс =”цом.тецхалпине.спринг.Стате”>

</пасуљ>

</пасуљ>

Након је главни класа за тестирање пасуља ињекцију конструктора-басед.

Listing 4: Главна примена фајл

пакет цом.тецхалпине.спринг;

import org.springframework.context.ApplicationContext;

увоз орг.спрингфрамеворк.цонтект.суппорт.ФилеСистемКсмлАпплицатионЦонтект;

јавни час ТестБеанИњецтион {

публиц статиц воид маин(Ниска[] аргс) {

АпплицатионЦонтект контекст = ново ФилеСистемКсмлАпплицатионЦонтект(

“ВебЦонтент / ВЕБ-ИНФ / беанЦонфиг.кмл”);

Цоунтри цоунтриобј = (земља)цонтект.гетБеан(“цоунтриБеан”);

цоунтриобј.статеНаме();

}

}








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

Унутар државне конструктор
Унутар Цоунтри конструктор
Унутар државне име: West Bengal

Сетс Базе ди

У ДИ сетер са седиштем у, зависности су прошли кроз сетер метода. Спринг контејнер позива те методе сетера да инстанцира пасуљ. Here, механизам и компоненте су скоро сличан конструктора заснован ДИ. Једина разлика је, у доношењу зависности и КСМЛ конфигурације. У ињекције сетер са седиштем у, <имовина> ознаке се користе уместо <конструктор-Арг> tag.








Закључак

У овом чланку смо објаснили начине како да спринг пасуљ се убризгава. Не постоји јасна правила када користити техничар на бази или конструктор на основу ДИ. Ми обично иду за конструктора заснован ДИ кад су обавезна је зависности, и изаберите сетер на бази Ди када зависности су опциони. Али комбинације оба су такође дозвољено.

 

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

Enjoy this blog? Please spread the word :)

Follow by Email
LinkedIn
LinkedIn
Share