..


Спонсоред Линкс

Језгро контејнера - Конструктор Зависност Убризгавање

Хајде сада да видимо, по пример, како се користе убризгавања Конструктор зависности
Ми стварамо нашу пасуљ који зависи генерички сервис:






 ит.мрвебмастер.ди.цонструцтор пакета;









 публиц цласс Бин {





  



 Приватна ГенерицСервице генерицСервице;



	

  



 привате Стринг беанНаме;





  



 / **



   



 * Произвођач



   



 * @ Парам генерицСервице



   



 * @ Парам беанНаме



   



 * /



  



 јавне Беан (ГенерицСервице генерицСервице, Стринг беанНаме) {



    



 супер ();



    



 тхис.генерицСервице = генерицСервице;



    



 тхис.беанНаме = беанНаме;



  



 }



	

  



 / **



   



 * Јавна метод



   



 * /



  



 публиц воид ситница () {



    



 Систем.оут.принтлн (беанНаме + "ради нешто");



    



 генерицСервице.досометхинг ();



  



 }



	





 }



конфигурисати зависност нелл'апплицатионЦонтект. кмл





 <беан ид="генерицСервице" цласс="ит.мрвебмастер.ди.цонструцтор.ГенерицСервицеИмпл" сцопе="синглетон" />









 <беан ид="цонструцторБеан" цласс="ит.мрвебмастер.ди.цонструцтор.беан">



  



 <цонструцтор-арг валуе="беанНаме"/>



  



 <цонструцтор-арг реф="генерицСервице"/>







 </ Бин>



Као што се може видети из примера да користе Конструктор зависности убризгавања мора користити Таг-АРГ конструктор користећи Реф или вредност атрибута. Реф Аттибасси потребно да прође као АРГ већ инстанце нелл'ИоЦ другог пасуља контејнер, док је вредност атрибута се користи да прође подразумеване вредности као стрингове или бројеве.

У примеру класе конструктор прихвата као улаз ГенерицСервице пасуљ и ниске, али пример је хтео да обрнули редослед аргумената да се покаже како пролеће комбинује аргументе њихов тип.
Ова врста понашања је добро када су сви аргументи различитих типова, али како смо одредили редослед ако аргументи су исти тип? Таг-АРГ конструктор пружа индекса атрибут који указује да би у пролеће са којом да прође параметара.






 <беан ид="цонструцторБеан" цласс="ит.мрвебмастер.ди.цонструцтор.беан">



  



 <цонструцтор-арг валуе="беанНаме" индек="1" />



  



 <цонструцтор-арг реф="генерицСервице" индек="0" />







 </ Бин>



Други случај може бити нејасно у којој цонструтторе прихвата као улаз два параметра који могу оба бити представљене ниске, на пример:






 јавне Беан (ГенерицСервице генерицСервице, гудачки беанНаме, инвоцатионТимес Цео) {



  



 супер ();



  



 тхис.генерицСервице = генерицСервице;



  



 тхис.беанНаме = беанНаме;



  



 тхис.инвоцатионТимес = инвоцатионТимес;







 }



и нелл'апплицатионЦонтект. кмл





 <беан ид="цонструцторБеан2" цласс="ит.мрвебмастер.ди.цонструцтор.беан">



  



 <цонструцтор-арг валуе="0" />



  



 <цонструцтор-арг валуе="беанНаме" />



  



 <цонструцтор-арг реф="генерицСервице" />







 </ Бин>



У овом случају, пролеће од грешке као "0" може бити стринг или број. Да бисте решили овај проблем, користите индекс или аттрибуро тип атрибута изгледа овако:





 <беан ид="цонструцторБеан2" цласс="ит.мрвебмастер.ди.цонструцтор.беан">



  



 <цонструцтор-арг типе="јава.ланг.Интегер" валуе="0" />



  



 <цонструцтор-арг валуе="беанНаме" типе="јава.ланг.Стринг" />



  



 <цонструцтор-арг реф="генерицСервице" />







 </ Бин>



Атрибут Конструктор-Арг се такође може користити да прође параметара фабрике метод:






 публиц статиц пасуљ цреатеБеан (ГенерицСервице генерицСервице, гудачки беанНаме, инвоцатионТимес Цео) {



  



 Пасуљ Б = нових Бин (генерицСервице, беанНаме, инвоцатионТимес);



  



 / / Да ли сометхиг .......



  



 повратак Б;







 }



нелл'апплицатионЦонтект. кмл





 <беан ид="цонструцторБеан3" цласс="ит.мрвебмастер.ди.цонструцтор.беан" фацтори-метход="цреатеБеан">



  



 <цонструцтор-арг типе="јава.ланг.Интегер" валуе="0" />



  



 <цонструцтор-арг валуе="беанНаме" типе="јава.ланг.Стринг" />



  



 <цонструцтор-арг реф="генерицСервице" />







 </ Бин>



Пролеће Јава Водич
Е-учење
Линук (курс) Линук (курс)
Комплетан водич за опен-соурце систем. Од 49 €.
ПХП (курс) ПХП (курс)
Цео курс за креирање динамичких веб сајтова. Од 49 €.
Руби и Руби он Раилс (курс) Руби и Руби он Раилс (курс)
Израду софтвера и веб апликација са рубином и РОР. Од 39 €.
Спонсоред Линкс