..


Sponzorované odkazy

Jádro Container - setr Dependency Injection

Použít konstruktor Dependency Injection může vést k vytvoření cyklické závislosti mezi fazolemi. Například, pokud se na odcházejícího předmětem záhlaví musí být instance k objektu B, ale zároveň objekt objekt B potřebuje, vytváří závislost, které nelze vyřešit pomocí konstruktoru Dependency Injection.

V takových případech je nutné použít setr Dependency Injection je velmi podobný konstruktoru, ale rozdíl spočívá v tom, že závislosti jsou injekčně po objekt instance. Zde je příklad:






 {Public class Bean2



	

  



 Soukromé GenericService genericService;





  



 public void setGenericService (GenericService genericService) {



    



 this.genericService = genericService;



  



 }





  



 veřejné GenericService getGenericService () {



    



 genericService návrat;



  



 }



	

  



 / **



   



 * Obchodní logika .............



   



 * /









 }



nell'applicationContext. XML





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



  



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







 </ Bean>



Kromě řešení problému s kruhovou závislost dipenze Setter Injection je možné nakonfigurovat také za běhu fazole, Z těchto důvodů je lepší do konstruktoru. Některé myšlenkové směry, nicméně, říkat, že by bylo dobré použít entrabe: konstruktor pro potřebné závislosti a zápis pro tyto volby. Doporučuje se používat pro zápis, protože je velmi vzácné, že tam jsou volitelné závislosti.

Kromě základního použití DI, tam jsou další funkce, které nabízí jarní, jako jsou prázdné řetězce, nebo si můžete aplikovat null pole:






 <- NULL hodnotu 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/> </ konstruktér-arg>







 </ Bean>









 <- 2 Hodnota NULL ->







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



  



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







 </ Bean>



Jarní nabízí také kolekci vedení seznamu typ, Set, Map, vlastnosti, a přes seznamu značek, set, map a rekvizity:






 {Public class CollectionBean





  



 soukromém seznamu <GenericService> beanList;





  



 Soukromým majetkem beanProps;





  



 Soukromé <string> beanSet září;





  



 Mapa soukromé <Integer, string> beanMap;





  



 / **



   



 * Obchodní logika ......................



   



 * /



	

  



 <GenericService> GetBeanList veřejný seznam () {



    



 beanList návrat;



  



 }





  



 veřejné Mapa <Integer, string> getBeanMap () {



    



 beanMap návrat;



  



 }





  



 Veřejné vlastnosti getBeanProps () {



    



 beanProps návrat;



  



 }





  



 <string> GetBeanSet veřejné set () {



    



 beanSet návrat;



  



 }





  



 public void setBeanList (List <GenericService> beanList) {



    



 this.beanList = beanList;



  



 }





  



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



    



 this.beanMap = beanMap;



  



 }





  



 public void setBeanProps (Properties beanProps) {



    



 this.beanProps = beanProps;



  



 }





  



 public void setBeanSet (Set <string> beanSet) {



    



 this.beanSet = beanSet;



  



 }







 }



nell'applicationContext. XML





 <- BEAN COLLECTION ->







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



	

  



 <- List ->



  



 <property name="beanList">



    



 <výčet>



      



 <ref bean="genericService"/>

	

    



 </ Seznam>



  



 </ Nemovitosti>



	

  



 <- Vlastnosti ->



  



 <property name="beanProps">



    



 <props>



      



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



      



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



      



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



    



 </ Rekvizity>



  



 </ Nemovitosti>



	

  



 <- SET ->



  



 <property name="beanSet">



    



 <Set>



      



 <hodnota> na </ value>



      



 <hodnota> b </ value>



    



 </ Set>



  



 </ Nemovitosti>



	

  



 <- MAP ->



  



 <property name="beanMap">



    



 <map>



      



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



    



 </ Mapa>



  



 </ Nemovitosti>







 </ Bean>



To ponechává čtenáře s hloubkou v jiných otázkách, jako je sběr sloučení, vnitřní fazole a spolupracovníky.

Jarní Java Průvodce
E-Learning
Linux (kurz) Linux (kurz)
Kompletní průvodce pro open-source systému. Od 49 €.
PHP (kurz) PHP (kurz)
Celý kurz pro vytváření dynamických webů. Od 49 €.
Ruby a Ruby on Rails (kurz) Ruby a Ruby on Rails (kurz)
Vytvořit software a webových aplikací s Ruby a RoR. Od 39 €.
Sponzorované odkazy