..


Sponsoroidut linkit

Core kontti - Setter Dependency Injection

Käyttö Constructor Riippuvuus injektio voi johtaa luomiseen syklisen riippuvuuksien pavut. Esimerkiksi jos on Viestien aiheiden täytyy instantiated objektiin B, mutta samalla esineen B tarvitsee kohteen, voit luoda riippuvuutta, jota ei voi ratkaista käyttämällä Constructor Dependency Injection.

Tällaisissa tapauksissa sinun tulee käyttää setteri Dependency Injection on hyvin samankaltainen Constructor mutta ero on siinä, että riippuvuudet ovat ruiskutetaan jälkeen kohde on instantiated. Tässä esimerkki:






 public class {Bean2



	

  



 Yksityinen GenericService genericService;





  



 public void setGenericService (GenericService genericService) {



    



 this.genericService = genericService;



  



 }





  



 julkinen GenericService getGenericService () {



    



 genericService palata;



  



 }



	

  



 / **



   



 * Liiketoimintalogiikalla .............



   



 * /









 }



nell'applicationContext. xml





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



  



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







 </ Bean>



Lisäksi ongelman ratkaisemiseksi pyöreä dipenze setteri Dependency Injection avulla voit myös uudelleen pavut suorituksen näistä syistä on suositeltavaa Constructor. Osa koulukuntien kuitenkin sanoa, että hyvä olisi käyttää entrabe: Constructor varten tarvittavat riippuvuudet ja setterin valinnaisia ​​osia. On suositeltavaa käyttää setteri koska se on hyvin harvinaista, että on olemassa vapaaehtoista riippuvuuksia.

Käyttämisen lisäksi pohjan OF muitakin ominaisuuksia että kevät tarjoaa esimerkiksi, voit pistää tyhjiä merkkijonoja tai null aloilla:






 <! - Null-arvo 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/> </ rakentaja-arg>







 </ Bean>









 <! - Null-arvo 2 ->







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



  



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







 </ Bean>



Kevät tarjoaa myös kokoelman hallinta-luettelosta Set, Map, Properties, ja kautta tag luettelon, aseta, kartta ja rekvisiitta:






 public class {CollectionBean





  



 Yksityinen lista <GenericService> beanList;





  



 Yksityinen Ominaisuudet beanProps;





  



 Yksityinen <merkkijono> beanSet syyskuussa;





  



 yksityistä karttaa <Integer, string> beanMap;





  



 / **



   



 * Liiketoimintalogiikalla ......................



   



 * /



	

  



 <GenericService> GetBeanList julkinen lista () {



    



 beanList palata;



  



 }





  



 julkinen Kartta <Integer, string> getBeanMap () {



    



 beanMap palata;



  



 }





  



 getBeanProps julkinen Properties () {



    



 beanProps palata;



  



 }





  



 <merkkijono> GetBeanSet julkinen Set () {



    



 beanSet palata;



  



 }





  



 public void setBeanList (<GenericService> beanList lista) {



    



 this.beanList = beanList;



  



 }





  



 public void setBeanMap (Kartta <Integer, string> beanMap) {



    



 this.beanMap = beanMap;



  



 }





  



 public void setBeanProps (Properties beanProps) {



    



 this.beanProps = beanProps;



  



 }





  



 public void setBeanSet (Set <merkkijono> beanSet) {



    



 this.beanSet = beanSet;



  



 }







 }



nell'applicationContext. xml





 <! - BEAN COLLECTION ->







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



	

  



 <! - List ->



  



 <property name="beanList">



    



 <list>



      



 <ref bean="genericService"/>

	

    



 </ List>



  



 </ Kiinteistövälitys>



	

  



 <! - Ominaisuudet ->



  



 <property name="beanProps">



    



 <props>



      



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



      



 <prop key="prop2"> arvo2 </ prop>



      



 <prop key="prop3"> value3 </ prop>



    



 </ Props>



  



 </ Kiinteistövälitys>



	

  



 <! - SET ->



  



 <property name="beanSet">



    



 <SET>



      



 <arvo> </ arvo>



      



 <arvo> b </ arvo>



    



 </ Set>



  



 </ Kiinteistövälitys>



	

  



 <! - MAP ->



  



 <property name="beanMap">



    



 <map>



      



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



    



 </ Kartta>



  



 </ Kiinteistövälitys>







 </ Bean>



Se jättää lukijalle syvyys muita asioita, kuten yhdistäminen keräämistä, sisempi pavut ja yhteistyökumppaneita.

Java jousenohjain
E-Learning
Linux (Course) Linux (Course)
Täydellinen opas avoimen lähdekoodin järjestelmä. Alkaen 49 €.
PHP (Course) PHP (Course)
Täysi tietenkin luoda dynaamisia Web-sivustoja. Alkaen 49 €.
Ruby ja Ruby on Rails (Course) Ruby ja Ruby on Rails (Course)
Luominen ohjelmisto-ja web-sovellusten kanssa Ruby ja RoR. Alkaen 39 €.
Sponsoroidut linkit