..


Sponsored Links

Core-Container - Setter Dependency Injection

Verwenden Sie den Konstruktor Dependency Injection können zur Schaffung von zyklischen Abhängigkeiten zwischen Bohnen führen. Zum Beispiel, wenn eine ausgehende Betreffzeilen, um auf ein Objekt B instantiiert werden, aber zur gleichen Zeit das Objekt A Objekt B Bedürfnisse benötigen, sie schafft sich eine Abhängigkeit, die nicht gelöst werden können mit dem Constructor Dependency Injection werden.

In solchen Fällen müssen Sie Setter Dependency Injection ist sehr ähnlich zu dem Constructor aber der Unterschied liegt in der Tatsache, dass Abhängigkeiten injiziert werden, nachdem das Objekt instanziiert wurde. Hier ein Beispiel:






 {Public class Bean2



	

  



 Privat GenericService genericService;





  



 public void setGenericService (GenericService genericService) {



    



 this.genericService = genericService;



  



 }





  



 öffentlichen GenericService getGenericService () {



    



 genericService return;



  



 }



	

  



 / **



   



 * Business-Logik .............



   



 * /









 }



nell'applicationContext. xml





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



  



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







 </ Bean>



Neben der Lösung des Problems der kreisförmigen dipenze Setter Dependency Injection können auch während der Laufzeit die Bohnen umkonfiguriert, aus diesen Gründen die Constructor bevorzugt wird. Einige Schulen des Denkens, aber sagen, dass der gute wäre, entrabe verwenden: Constructor für die notwendigen Abhängigkeiten und Setter für diese Optionen. Es ist ratsam, die Setter verwenden, da es sehr selten ist, dass es optional Abhängigkeiten.

Neben den grundlegenden Einsatz von DI gibt es noch andere Funktionen, die Spring bietet, wie leere Saiten, oder Sie können null Felder spritzen:






 <-! NULL VALUE 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/> </ constructor-arg>







 </ Bean>









 <-! 2-Wert NULL ->







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



  



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







 </ Bean>



Frühling bietet auch eine Sammlung von Management-Typ List, Set, Map, Eigenschaften und durch die Tag-Liste, set, map und Requisiten:






 {Public class CollectionBean





  



 private List <GenericService> beanList;





  



 Private Properties beanProps;





  



 Privat <String> beanSet September;





  



 private Map <Integer, string> beanMap;





  



 / **



   



 * Business-Logik ......................



   



 * /



	

  



 <GenericService> GetBeanList public List () {



    



 beanList return;



  



 }





  



 öffentlichen Map <Integer, string> getBeanMap () {



    



 beanMap return;



  



 }





  



 Öffentliche Eigenschaften getBeanProps () {



    



 beanProps return;



  



 }





  



 <String> GetBeanSet öffentlichen Set () {



    



 beanSet return;



  



 }





  



 public void setBeanList (Liste <GenericService> beanList) {



    



 this.beanList = beanList;



  



 }





  



 public void setBeanMap (Map <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">



    



 <list>



      



 <ref bean="genericService"/>

	

    



 </ Liste>



  



 </ Property>



	

  



 <-! Eigenschaften ->



  



 <property name="beanProps">



    



 <props>



      



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



      



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



      



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



    



 </ Props>



  



 </ Property>



	

  



 <-! SET ->



  



 <property name="beanSet">



    



 <set>



      



 <Wert> </ value>



      



 <Wert> b </ value>



    



 </ Set>



  



 </ Property>



	

  



 <-! MAP ->



  



 <property name="beanMap">



    



 <map>



      



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



    



 </ Map>



  



 </ Property>







 </ Bean>



Es lässt den Leser mit der Tiefe auf andere Themen wie die Sammlung der Zusammenführung, die innere Bohnen und Mitarbeiter.

Spring Java-Führer
E-Learning
Linux (Kurs) Linux (Kurs)
Ein vollständiger Reiseführer von Open-Source-System. Von 49 €.
PHP (Kurs) PHP (Kurs)
Vollständige natürlich für die Erstellung dynamischer Websites. Von 49 €.
Ruby und Ruby on Rails (Kurs) Ruby und Ruby on Rails (Kurs)
Neues Software-und Web-Anwendungen mit Ruby und RoR. Von 39 €.
Sponsored Links