..


Links Patrocinados

Container Core - Dependency Injection Setter

O uso de Dependency Injection Constructor pode levar à criação de dependências cíclicas entre feijão. Por exemplo, se A tem um assunto cabeçalhos de saída precisam ser instanciado para um objeto B, mas ao mesmo tempo, o objeto B precisa de objeto, você cria uma dependência que não pode ser resolvido usando o Dependency Injection Constructor.

Em tais casos, você deve usar o Dependency Injection Setter é muito semelhante ao Constructor mas a diferença reside no fato de que as dependências são injetadas após o objeto tenha sido instanciado. Aqui está um exemplo:






 public class {Bean2



	

  



 GenericService GenericService privado;





  



 setGenericService public void (GenericService genericService) {



    



 this.genericService = genericService;



  



 }





  



 getGenericService GenericService pública () {



    



 genericService retorno;



  



 }



	

  



 / **



   



 * A lógica de negócios .............



   



 * /









 }



nell'applicationContext. xml





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



  



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







 <Bean />



Além de resolver o problema da injeção de dependência circular dipenze Setter também permite que você reconfigure o feijão em tempo de execução, por estes motivos, é o preferido para o construtor. Algumas escolas de pensamento, no entanto, dizer que o bom seria usar entrabe: Construtor para as dependências necessárias e setters para peças opcionais. É aconselhável usar o setter, pois é muito raro que existem dependências opcionais.

Além de usar a base do DOS existem outras características que oferece Spring, por exemplo, você pode injetar strings vazias ou campos nulos:






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







 <Bean />









 <! - VALOR NULL 2 ->







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



  



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







 <Bean />



Primavera também oferece uma coleção de lista tipo de gestão, Set, Map, propriedades e através da lista de tag, jogo, mapa, e adereços:






 public class {CollectionBean





  



 private List <GenericService> beanList;





  



 Propriedades privadas beanProps;





  



 Privada <String> beanSet de Setembro;





  



 Mapa privada <Integer, beanMap string>;





  



 / **



   



 * A lógica do negócio ......................



   



 * /



	

  



 <GenericService> Lista getBeanList pública () {



    



 beanList retorno;



  



 }





  



 pública Mapa <Integer, string> getBeanMap () {



    



 beanMap retorno;



  



 }





  



 Propriedades getBeanProps pública () {



    



 beanProps retorno;



  



 }





  



 <string> Set pública getBeanSet () {



    



 beanSet retorno;



  



 }





  



 setBeanList public void (<GenericService> Lista beanList) {



    



 this.beanList = beanList;



  



 }





  



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



    



 this.beanMap = beanMap;



  



 }





  



 pública setBeanProps void (beanProps Properties) {



    



 this.beanProps = beanProps;



  



 }





  



 setBeanSet public void (beanSet <String> Set) {



    



 this.beanSet = beanSet;



  



 }







 }



nell'applicationContext. xml





 <! - COLEÇÃO DE FEIJÃO ->







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



	

  



 <! - LISTA ->



  



 <property name="beanList">



    



 <list>



      



 <ref bean="genericService"/>

	

    



 <Lista />



  



 </ Property>



	

  



 <! - PROPRIEDADES ->



  



 <property name="beanProps">



    



 <props>



      



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



      



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



      



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



    



 </ Props>



  



 </ Property>



	

  



 <! - SET ->



  



 <property name="beanSet">



    



 <set>



      



 <value> a </ value>



      



 <value> b </ value>



    



 </ Set>



  



 </ Property>



	

  



 <! - MAP ->



  



 <property name="beanMap">



    



 <map>



      



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



    



 <Mapa />



  



 </ Property>







 <Bean />



Deixa o leitor com a profundidade de outras questões, como a fusão de coleta, os grãos de interior e colaboradores.

Java Guia de Primavera
E-Learning
Linux (Curso) Linux (Curso)
Guia completo para open-source do sistema. A partir de 49 €.
PHP (Curso) PHP (Curso)
Curso completo para a criação de sites dinâmicos. A partir de 49 €.
Ruby e Ruby On Rails (Curso) Ruby e Ruby On Rails (Curso)
Criação de software e aplicações Web com Ruby e RoR. A partir de 39 €.
Links Patrocinados