..


Linki sponsorowane

Pojemnik Core - Dependency Injection Setter

Użyj Dependency Injection konstruktora może prowadzić do powstania cyklicznych zależności między fasoli. Na przykład, jeśli wychodzących nagłówki przedmiotem muszą być instancji do B obiektu, ale w tym samym czasie obiekt B obiekt potrzeb, tworzy zależność, której nie można rozwiązać za pomocą Dependency Injection Constructor.

W takich przypadkach należy użyć Dependency Injection Setter jest bardzo podobna do konstruktora, ale różnica polega na tym, że zależności są wstrzykiwane po obiektu instancji. Oto przykład:






 {Public class Bean2



	

  



 Prywatne genericService GenericService;





  



 publicznych setGenericService void (GenericService genericService) {



    



 this.genericService = genericService;



  



 }





  



 publicznych getGenericService GenericService () {



    



 genericService powrotu;



  



 }



	

  



 / **



   



 * Logika biznesowa .............



   



 * /









 }



nell'applicationContext. xml





 <bean id="setterBean" class="it.mrwebmaster.di.setter.Bean2">



  



 <property name="genericService" ref="genericService" />







 </ Bean>



Oprócz rozwiązania problemu z okrągłym Setter dipenze Dependency Injection może być zmieniana w czasie wykonywania, fasola, z tych powodów zaleca się konstruktor. Niektóre szkoły myśli jednak powiedzieć, że dobre byłoby wykorzystanie entrabe: Konstruktor niezbędne zależności i ustawiających dla tych opcji. Wskazane jest, aby używać setter, ponieważ jest bardzo rzadko, że nie są opcjonalne zależności.

Oprócz podstawowych korzystania z DI, są inne funkcje, które Spring oferuje, takie jak łańcuchy puste lub można wstrzyknąć null:






 <- NULL wartość 1 ->







 <bean id="nullBean1" class="it.mrwebmaster.di.constructor.bean" factory-method="createBean">



  



 <constructor-arg type="java.lang.Integer" value="0" />



  



 <constructor-arg type="java.lang.String" value="" />



  



 <constructor-arg type="it.mrwebmaster.di.constructor.GenericService"> <null/> </ konstruktor-arg>







 </ Bean>









 <- 2 wartości NULL ->







 <bean id="nullBean2" class="it.mrwebmaster.di.setter.Bean2">



  



 <property name="genericService"> <null/> </ property>







 </ Bean>



Wiosna oferuje również zbiór Lista typu zarządzania, Set, mapa, Właściwości, a listę znaczników, zbiór, map i rekwizyty:






 {Public class CollectionBean





  



 prywatne listy <GenericService> beanList;





  



 Prywatne Właściwości beanProps;





  



 Prywatne <String> beanSet września;





  



 prywatne Mapa <Integer, beanMap łańcuch;





  



 / **



   



 * Logika biznesowa ......................



   



 * /



	

  



 <GenericService> GetBeanList publicznych Lista () {



    



 beanList powrotu;



  



 }





  



 publicznej Mapa <Integer, łańcuch getBeanMap () {



    



 beanMap powrotu;



  



 }





  



 Właściwości publiczne getBeanProps () {



    



 beanProps powrotu;



  



 }





  



 GetBeanSet Ustaw <String> publicznych () {



    



 beanSet powrotu;



  



 }





  



 publicznych setBeanList void (Lista <GenericService> beanList) {



    



 this.beanList = beanList;



  



 }





  



 public void setBeanMap (Mapa łańcuch beanMap <Integer,) {



    



 this.beanMap = beanMap;



  



 }





  



 publicznych setBeanProps void (Właściwości beanProps) {



    



 this.beanProps = beanProps;



  



 }





  



 publicznych setBeanSet void (beanSet <String> Set) {



    



 this.beanSet = beanSet;



  



 }







 }



nell'applicationContext. xml





 <- Kolekcja BEAN ->







 <bean id="collectionBean" class="it.mrwebmaster.di.collection.CollectionBean">



	

  



 <- LISTA ->



  



 <property name="beanList">



    



 <lista>



      



 <ref bean="genericService"/>

	

    



 </> Lista



  



 </ Nieruchomości>



	

  



 <- NIERUCHOMOŚCI ->



  



 <property name="beanProps">



    



 <props>



      



 <prop key="prop1"> value1 </ prop>



      



 <prop key="prop2"> wartość2 </ prop>



      



 <prop key="prop3"> wartość3 </ prop>



    



 </ Rekwizyty>



  



 </ Nieruchomości>



	

  



 <- SET ->



  



 <property name="beanSet">



    



 <set>



      



 <wartość> do </ value>



      



 <wartość> b </ value>



    



 </ Set>



  



 </ Nieruchomości>



	

  



 <- MAP ->



  



 <property name="beanMap">



    



 <map>



      



 <entry key="1" value="value1" />



    



 </ Map>



  



 </ Nieruchomości>







 </ Bean>



Pozostawia czytelnika z głębokością w innych kwestiach, takich jak zbiór korespondencji seryjnej, fasola wewnętrznej i współpracowników.

Wiosna Java Przewodnik
E-Learning
Linux (Kurs) Linux (Kurs)
Kompletny przewodnik do systemu open-source. Od 49 €.
PHP (Kurs) PHP (Kurs)
Pełny kurs tworzenia dynamicznych stron internetowych. Od 49 €.
Ruby i Ruby on Rails (Kurs) Ruby i Ruby on Rails (Kurs)
Tworzenie oprogramowania i aplikacji webowych w języku Ruby RoR. Od 39 €.
Linki sponsorowane