..


Sponzorované odkazy

Jadro Container - konštruktor Dependency Injection

Teraz sa pozrime na príkladoch, ako použiť konštruktor Dependency Injection
Vytvárame našu bôbov, ktorý závisí na generické služby:






 it.mrwebmaster.di.constructor balenia;









 {Public class Bean





  



 Súkromné ​​GenericService genericService;



	

  



 private String beanName;





  



 / **



   



 * Výrobca



   



 * @ Param genericService



   



 * @ Param beanName



   



 * /



  



 verejné Bean (GenericService genericService, String beanName) {



    



 super ();



    



 this.genericService = genericService;



    



 this.beanName = beanName;



  



 }



	

  



 / **



   



 * Verejná metóda



   



 * /



  



 public void DOIT () {



    



 System.out.println (beanName + "niečo");



    



 genericService.dosomething ();



  



 }



	





 }



Konfigurácia závislostí nell'applicationContext. XML





 <bean id="genericService" class="it.mrwebmaster.di.constructor.GenericServiceImpl" scope="singleton" />









 <bean id="constructorBean" class="it.mrwebmaster.di.constructor.bean">



  



 <constructor-arg value="beanName"/>



  



 <constructor-arg ref="genericService"/>







 </ Bean>



Ako je vidieť napríklad použiť konštruktor Dependency Injection je nutné použiť tag-arg pomocou konštruktory REF, alebo hodnoty atribútov. Odkaz Attibassi treba odovzdať ako argument už inštancia nell'IoC ďalšie nádoby fazuľa, zatiaľ čo hodnota atribútu je použitá odovzdať predvolené hodnoty ako reťazce alebo čísla.

V príklade triedy konštruktor prijíma ako vstup GenericService fazuľa a String, ale napríklad chcel obrátiť poradie argumenty, ktoré ukazujú, ako jar kombinuje argumenty podľa ich typu.
Tento typ správania je v poriadku, keď všetky argumenty sú rôznych typov, ale ako sme sa určiť poradie, v prípade, že argumenty sú rovnakého typu? Tag-arg konštruktér poskytuje index atribút, ktorý určuje poradie na jar, ktoré im odovzdať parametre.






 <bean id="constructorBean" class="it.mrwebmaster.di.constructor.bean">



  



 <constructor-arg value="beanName" index="1" />



  



 <constructor-arg ref="genericService" index="0" />







 </ Bean>



Ďalším prípadom môže byť dvojznačný, v ktorom construttore akceptuje ako vstup dva parametre, ktoré môžu byť zastúpené oba reťazce, napríklad:






 verejné Bean (GenericService genericService, String beanName, invocationTimes Integer) {



  



 super ();



  



 this.genericService = genericService;



  



 this.beanName = beanName;



  



 this.invocationTimes = invocationTimes;







 }



a nell'applicationContext. XML





 <bean id="constructorBean2" class="it.mrwebmaster.di.constructor.bean">



  



 <constructor-arg value="0" />



  



 <constructor-arg value="beanName" />



  



 <constructor-arg ref="genericService" />







 </ Bean>



V tomto prípade môže prameniť z chyby ako "0" byť buď reťazec alebo číslo. Ak chcete tento problém vyriešiť, použite index, alebo attriburo typ atribútu, ako je tento:





 <bean id="constructorBean2" class="it.mrwebmaster.di.constructor.bean">



  



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



  



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



  



 <constructor-arg ref="genericService" />







 </ Bean>



Atribút konštruktér-arg môže byť tiež použitý na odovzdanie parametrov do továrenského metódy:






 public static fazuľa createBean (GenericService genericService, String beanName, invocationTimes Integer) {



  



 Bean Bean b = new (genericService, beanName, invocationTimes);



  



 / / Do somethig .......



  



 návrat b;







 }



nell'applicationContext. XML





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



  



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



  



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



  



 <constructor-arg ref="genericService" />







 </ Bean>



Jarné Java Sprievodca
E-Learning
Linux (kurz) Linux (kurz)
Kompletný sprievodca pre open-source systému. Od 49 €.
PHP (kurz) PHP (kurz)
Celý kurz pre vytváranie dynamických webov. Od 49 €.
Ruby a Ruby on Rails (kurz) Ruby a Ruby on Rails (kurz)
Vytvoriť softvér a webových aplikácií s Ruby a ROR. Od 39 €.
Sponzorované odkazy