..
온라인 강좌
  • 페이스 북에 우리를 따르라
  • 트위터에 우리를 따르라
  • + Google에 우리를 따르라
  • RSS를 통해 우리를 따르라
  • 귀하의 스마트폰으로 우리를 따라

코어 컨테이너 - 세터 종속성 주입

생성자 종속성 주입의 사용은 콩을 간의 순환 종속성의 창출로 이어질 수 있습니다. 예를 들어, A가 개체 B에 인스턴스하지만, 동시에 객체 B가 객체의 요구해야 나가는 주제 헤더한다면, 그것은 생성자 의존성 주입을 사용하여 확인할 수없는 종속성을 만듭니다.

이런 경우 하나는 생성자와 매우 비슷하지만 차이가 개체 인스턴스 이후 의존성이 주입되고있다는 사실에있다 세터 의존성 주입을 사용해야합니다. 자, 예를 들어 보자 :



 공용 클래스 {Bean2

	
  

 개인 GenericService의 genericService;


  

 공공 공극 setGenericService (GenericService genericService) {

    

 this.genericService = genericService;

  

 }


  

 공공 GenericService의 getGenericService () {

    

 genericService 반환;

  

 }

	
  

 / **

   

 * 비즈니스 로직 .............

   

 * /




 }

nell'applicationContext. XML


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

  

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



 </ 빈>

원형 dipenze 출력기 종속성 주입의 문제 해결뿐만 아니라 그것은 생성자로 선호되고있는 이러한 이유로, 당신은 런타임에 다시 구성할 콩을화할 수 있습니다. 옵션 부품에 필요한 종속성 및 Setters에 대한 생성자 : 생각의 일부 학교는 그러나 최적가 entrabe를 사용하는 것이라고 말한다. 그것이 선택 의존성이있다는 것을 매우 드문으로 그것은 세터를 사용하는 것이 좋습니다.

(기사는 아래에 계속됩니다 ...)

의의 기지​​를 사용하는 이외에 같은 봄 제공은 빈 문자열이나 nul​​l이 분야에 주입 할 수있는 다른 기능이 있습니다 :



 <-! NULL 값을 1 ->



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

  

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

  

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

  

 <constructor-arg type="it.mrwebmaster.di.constructor.GenericService"> <null/> </ 생성자 - 아르헨티나>



 </ 빈>




 <-! NULL 값을 2 ->



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

  

 <property name="genericService"> <null/> </ 부동산>



 </ 빈>

봄 또한 형식 목록 관리의 수집, 세트,​​지도, 속성 및 태그 목록을 통해, 세트,​​지도, 그리고 소품을 제공합니다 :



 공용 클래스 {CollectionBean


  

 민간리스트 <GenericService> beanList;


  

 개인 등록 정보 beanProps;


  

 개인 <String> beanSet 9월;


  

 개인지도 <Integer, string>의 beanMap;


  

 / **

   

 * 비즈니스 로직 ......................

   

 * /

	
  

 <GenericService> getBeanList 공개 목록 () {

    

 반환 beanList;

  

 }


  

 공개지도 <Integer, string> getBeanMap () {

    

 beanMap는 반환;

  

 }


  

 getBeanProps 공용 속성 () {

    

 beanProps는 반환;

  

 }


  

 9 월 <String>의 ge​​tBeanSet의 대중 () {

    

 beanSet 반환;

  

 }


  

 공공 공극 setBeanList (목록 <GenericService> beanList) {

    

 this.beanList = beanList;

  

 }


  

 공공 무효 setBeanMap (지도 <Integer, string>의 beanMap) {

    

 this.beanMap = beanMap;

  

 }


  

 공공 공극 setBeanProps (등록 beanProps) {

    

 this.beanProps = beanProps;

  

 }


  

 공공 공극 setBeanSet (세트 <String>의 beanSet) {

    

 this.beanSet = beanSet;

  

 }



 }

nell'applicationContext. XML


 <-! 콩 수집 ->



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

	
  

 <-!리스트 ->

  

 <property name="beanList">

    

 <list>

      

 <ref bean="genericService"/>
	
    

 </ 목록>

  

 </ 부동산>

	
  

 <- 속성 ->

  

 <property name="beanProps">

    

 <props>

      

 <prop key="prop1"> 값 1 </ 소품>

      

 <prop key="prop2"> value2 </ 소품>

      

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

    

 </ 소품>

  

 </ 부동산>

	
  

 <- 설정 ->

  

 <property name="beanSet">

    

 <set>

      

 <value> </ 값>

      

 <value> B </ 값>

    

 </ 세트>

  

 </ 부동산>

	
  

 <-!지도 ->

  

 <property name="beanMap">

    

 <map>

      

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

    

 </지도>

  

 </ 부동산>



 </ 빈>

이 같은 수집, 내부 콩 및 공동 작업자의 병합과 같은 다른 문제의 깊이와 리더를 떠난다.

코스
리눅스 강좌 리눅스 강좌
오픈 소스 시스템에 완전한 가이드. 39 €부터 시작.
PHP 강좌 PHP 강좌
동적 웹 사이트를 만드는 전체 과정. 49 €부터 시작.
코스 루비와 레일에 루비 코스 루비와 레일에 루비
루비와 RoR로 소프트웨어와 웹 애플 리케이션을 생성. 49 €부터 시작.
개요
광고

cpclubpenguincheatscp.com

광고
회사 소개
미국의 소리 접촉하기
공동 작업
면책 조항
© 2003년에서 2012년까지 cpclubpenguincheatscp.com - 이탈리아 웹마 스터의 포털 - 판권 소유 |에 의해 구동 인터넷 미디어 IKIweb Srl - PIVA 02848390122