..


Sponsor Bağlantılar

Çekirdek Konteyner - Oluşturucu Dependency Injection

Şimdi Oluşturucu Dependency Injection nasıl, örnek, bakalım
Biz genel bir hizmet bağlıdır bizim fasulye oluşturun:






 it.mrwebmaster.di.constructor paket;









 public class Bean {





  



 Özel GenericService genericService;



	

  



 Özel Dize beanName;





  



 / **



   



 * Üretici



   



 * @ Param genericService



   



 * @ Param beanName



   



 * /



  



 kamu Bean (GenericService genericService, String beanName) {



    



 super ();



    



 this.genericService = genericService;



    



 this.beanName = beanName;



  



 }



	

  



 / **



   



 * Genel yöntem



   



 * /



  



 public void doit () {



    



 System.out.println (beanName "bir şey yapıyor" +);



    



 genericService.dosomething ();



  



 }



	





 }



bağımlılık nell'applicationContext. xml yapılandırma





 <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"/>







 </ Fasulye>



Oluşturucu Bağımlılık Enjeksiyon ref veya değer özniteliklerini kullanarak etiket-arg yapıcı kullanmanız gerekir kullanmak örnekte görüldüğü gibi. Değer nitelik katar numaraları gibi varsayılan değerleri aktarmak için kullanılır ise ref Attibassi zaten nell'IoC başka fasulye konteyner örneği parametre olarak geçmesi gerekiyor.

Örnekte sınıf yapıcısı girişi GenericService fasulye ve bir dize olarak kabul eder, ama Bahar türüne göre argümanları birleştirerek nasıl kullanıldığını göstermek için argümanlar sırasını tersine çevirmek istedim örnek.
Bu davranışlar tüm argümanları farklı zaman iyi, ama argümanlar aynı türde olup olmadığını nasıl sipariş belirtebilirim? Etiket-arg yapıcı parametreler hangi ile Bahar sırayla gösteren dizin özniteliği sağlar.






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



  



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



  



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







 </ Fasulye>



Başka bir durumda construttore giriş örneğin bir dize ile temsil edilebilir her iki parametre olarak kabul ettiği bir belirsiz biri olabilir:






 kamu Bean (GenericService genericService, String beanName, invocationTimes Tamsayı) {



  



 super ();



  



 this.genericService = genericService;



  



 this.beanName = beanName;



  



 this.invocationTimes = invocationTimes;







 }



ve nell'applicationContext. xml





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



  



 <constructor-arg value="0" />



  



 <constructor-arg value="beanName" />



  



 <constructor-arg ref="genericService" />







 </ Fasulye>



Bu durumda, "0" olarak hatadan bahar bir dize veya bir sayı olabilir. Bu sorunu gidermek için, dizin veya attriburo bu gibi type özniteliği kullanın:





 <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" />







 </ Fasulye>



Nitelik kurucu-arg da fabrika yöntemini parametreler kullanılabilir:






 public static fasulye createBean (GenericService genericService, String beanName, invocationTimes Tamsayı) {



  



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



  



 / / Üzerinde somethig .......



  



 b dönmek;







 }



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" />







 </ Fasulye>



Bahar Java Rehberi
E-Öğrenme
Linux (Ders) Linux (Ders)
Açık kaynak sistemi komple rehberi. 49 € düşük.
PHP (Ders) PHP (Ders)
Dinamik Web siteleri oluşturmak için tam ders. 49 € düşük.
Ruby on Rails ve Ruby (Ders) Ruby on Rails ve Ruby (Ders)
Ruby ve RoR ile yazılım ve Web uygulamaları oluşturun. En düşük € 39.
Sponsor Bağlantılar