..


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

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

Користите Конструктор зависности ињецтион може да доведе до стварања цикличног зависности између пасуљ. На пример, ако одлазни предмет заглавља морају бити инстанце да се објекат Б, али у исто време објекат објекат Б потреба, ствара зависност која се не може решити коришћењем Конструктор зависности убризгавања.

У таквим случајевима морате користити сетер Зависност убризгавања је веома сличан конструктор, али разлика је у чињеници да се убризгава зависности након што је објекат био инстанце. Ево једног примера:






 {Публиц цласс Беан2



	

  



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





  



 публиц воид сетГенерицСервице (ГенерицСервице генерицСервице) {



    



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



  



 }





  



 јавне ГенерицСервице гетГенерицСервице () {



    



 генерицСервице повратак;



  



 }



	

  



 / **



   



 * Пословна логика .............



   



 * /









 }



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





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



  



 <проперти наме="генерицСервице" реф="генерицСервице" />







 </ Бин>



Поред решавања проблема кружног дипензе убризгавања сетер зависности може се реконфигурисати у рунтиме пасуљ, из тих разлога препоручљиво је да то Конструктор. Неке школе мишљења, међутим, кажу да би добро да се користи ентрабе: конструктор за потребне зависности и креатори за оне опције. Препоручљиво је да користите сетер, јер је веома ретко да постоје опционе зависности.

Поред основне употребе ДИ, постоје и друге могућности које нуди пролеће, као што су празне стрингове, или можете убризгати нулл поља:






 <- Вредност Нулл 1 ->







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



  



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



  



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



  



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







 </ Бин>









 <- 2 ВРЕДНОСТ НУЛЛ ->







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



  



 <проперти наме="генерицСервице"> <нулл/> </ имовине>







 </ Бин>



Пролеће такође нуди колекцију листе управљања типа, сет, Карта, Својства, а кроз таг листе, скуп, мапа, и реквизите:






 {Публиц цласс ЦоллецтионБеан





  



 Листа личних <ГенерицСервице> беанЛист;





  



 Приватне својине беанПропс;





  



 Приватна <стринг> беанСет септембра;





  



 приватне Карта <Интегер, стринг> беанМап;





  



 / **



   



 * Пословна логика ......................



   



 * /



	

  



 <ГенерицСервице> ГетБеанЛист јавни листа () {



    



 беанЛист повратак;



  



 }





  



 јавна карта <Интегер, стринг> гетБеанМап () {



    



 беанМап повратак;



  



 }





  



 Јавна имовина гетБеанПропс () {



    



 беанПропс повратак;



  



 }





  



 <стринг> ГетБеанСет јавни Постави () {



    



 беанСет повратак;



  



 }





  



 публиц воид сетБеанЛист (Листа <ГенерицСервице> беанЛист) {



    



 тхис.беанЛист = беанЛист;



  



 }





  



 публиц воид сетБеанМап (Мапа <Интегер, стринг> беанМап) {



    



 тхис.беанМап = беанМап;



  



 }





  



 публиц воид сетБеанПропс (Својства беанПропс) {



    



 тхис.беанПропс = беанПропс;



  



 }





  



 публиц воид сетБеанСет (Постави <стринг> беанСет) {



    



 тхис.беанСет = беанСет;



  



 }







 }



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





 <- БЕАН КОЛЕКЦИЈА ->







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



	

  



 <- ЛИСТА ->



  



 <проперти наме="беанЛист">



    



 <лист>



      



 <реф беан="генерицСервице"/>

	

    



 </ Списак>



  



 </ Некретнине>



	

  



 <- Пропертиес ->



  



 <проперти наме="беанПропс">



    



 <пропс>



      



 <проп кеи="проп1"> вредност1 </ реквизит>



      



 <проп кеи="проп2"> вредност2 </ реквизит>



      



 <проп кеи="проп3"> валуе3 </ реквизит>



    



 </ Реквизити>



  



 </ Некретнине>



	

  



 <- СЕТ ->



  



 <проперти наме="беанСет">



    



 <Подеси>



      



 <валуе> до </ вредност>



      



 <валуе> Б </ вредност>



    



 </ Подесити>



  



 </ Некретнине>



	

  



 <- МАП ->



  



 <проперти наме="беанМап">



    



 <мап>



      



 <ентри кеи="1" валуе="валуе1" />



    



 </ Карта>



  



 </ Некретнине>







 </ Бин>



То оставља читаоца са дубине ио другим питањима као што су прикупљање стапања, унутрашњи пасуљ и сарадника.

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