..


Liens sponsorisés

Conteneur de base - Dependency Injection Setter

Utilisez le Dependency Injection constructeur peut conduire à la création de dépendances cycliques entre les haricots. Par exemple, si une réserve têtes sortants doivent être instancié pour un objet B, mais en même temps, l'objet A, B objet doit, elle crée une dépendance qui ne peuvent pas être résolus en utilisant la Dependency Injection constructeur.

Dans de tels cas, vous devez utiliser Dependency Injection Setter est très similaire au constructeur, mais la différence réside dans le fait que les dépendances sont injectées après que l'objet a été instancié. Voici un exemple:






 {Public class Bean2



	

  



 GenericService GenericService privé;





  



 setGenericService public void (GenericService genericService) {



    



 this.genericService = genericService;



  



 }





  



 getGenericService GenericService publique () {



    



 genericService retour;



  



 }



	

  



 / **



   



 La logique métier * .............



   



 * /









 }



nell'applicationContext. xml





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



  



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







 </ Bean>



En plus de résoudre le problème de l'injection de dépendances dipenze Setter circulaire peut également être reconfiguré à l'exécution des fèves, pour ces raisons, il est préférable pour le constructeur. Certaines écoles de pensée, cependant, dire que le bien serait d'utiliser entrabe: Constructeur pour les dépendances nécessaires et setters pour ces options. Il est conseillé d'utiliser le setter comme il est très rare qu'il ya des dépendances optionnelles.

Outre l'utilisation de base de DI, il ya d'autres fonctions que le printemps offre, tels que des chaînes vides, ou vous pouvez injecter des champs NULL:






 <! - VALEUR NULL 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/> </ constructeur-arg>







 </ Bean>









 <! - 2 valeur NULL ->







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



  



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







 </ Bean>



Le printemps offre également une collection de type List gestion, Set, Map, propriétés, et à travers la liste des étiquettes, ensemble, la carte, et accessoires:






 {Public class CollectionBean





  



 Liste privée <GenericService> beanList;





  



 Privé beanProps Propriétés;





  



 Privé <String> beanSet Septembre;





  



 Carte privés <Integer, beanMap string>;





  



 / **



   



 La logique métier * ......................



   



 * /



	

  



 <GenericService> GetBeanList public List () {



    



 beanList retour;



  



 }





  



 publics Carte <Integer, string> getBeanMap () {



    



 beanMap retour;



  



 }





  



 Public getBeanProps Propriétés () {



    



 beanProps retour;



  



 }





  



 Réglez publique <String> getBeanSet () {



    



 beanSet retour;



  



 }





  



 setBeanList public void (Liste <GenericService> beanList) {



    



 this.beanList = beanList;



  



 }





  



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



    



 this.beanMap = beanMap;



  



 }





  



 setBeanProps public void (beanProps Propriétés) {



    



 this.beanProps = beanProps;



  



 }





  



 setBeanSet public void (beanSet <String> Set) {



    



 this.beanSet = beanSet;



  



 }







 }



nell'applicationContext. xml





 <! - COLLECTION BEAN ->







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



	

  



 <! - LA LISTE ->



  



 <property name="beanList">



    



 <list>



      



 <ref bean="genericService"/>

	

    



 </ List>



  



 </ Property>



	

  



 <! - Propriétés ->



  



 <property name="beanProps">



    



 <props>



      



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



      



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



      



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



    



 </ Accessoires>



  



 </ Property>



	

  



 <! - SET ->



  



 <property name="beanSet">



    



 <set>



      



 <valeur> </ value>



      



 <valeur> b </ value>



    



 </ Set>



  



 </ Property>



	

  



 <! - MAP ->



  



 <property name="beanMap">



    



 <map>



      



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



    



 </ Map>



  



 </ Property>







 </ Bean>



Il laisse le lecteur avec la profondeur sur d'autres questions telles que la collecte de la fusion, les haricots intérieure et collaborateurs.

Printemps de Java Guide
E-Learning
Linux (Cours) Linux (Cours)
Guide complet de système open-source. A partir de 49 €.
PHP (cours) PHP (cours)
Cours complet pour la création de sites Web dynamiques. A partir de 49 €.
Ruby et Ruby on Rails (Cours) Ruby et Ruby on Rails (Cours)
Créer des applications logicielles et Web avec Ruby et RoR. A partir de 39 €.
Liens sponsorisés