..
이제 생성자 의존성 주입을 사용하는 방법, 예를 들어하여 보자
우리는 일반적인 서비스에 따라 우리 콩 작성 :
it.mrwebmaster.di.constructor 패키지;
공용 클래스 빈 {
개인 GenericService의 genericService;
개인 문자열 beanName;
/ **
* 제조 업체
* @ PARAM의 genericService
* @ PARAM의 beanName
* /
공개 빈 (GenericService genericService, 문자열 beanName) {
슈퍼 ();
this.genericService = genericService;
this.beanName = beanName;
}
/ **
* 공개 방법
* /
공공 공극 작은 동전 () {
System.out.println (beanName는 "일을"+);
genericService.dosomething ();
}
}
의존 nell'applicationContext. XML을 구성
<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"/> </ 빈>
생성자 의존성 주입이 심판 또는 값 속성을 사용하여 태그 - ARG 생성자를 사용해야 사용할 수있는 예제에서 볼 수 있듯이. 값 속성이 문자열 또는 숫자와 같은 기본 가치를 전달하는 데 사용되는 반면 심판 Attibassi 이미 nell'IoC 다른 콩 컨테이너를 인스턴스 ARG로 전달해야합니다.
예제에서는 클래스 생성자는 입력 GenericService 콩하고 문자열로 허용하지만 그는 봄 자신의 유형 인수를 결합하는 방법 보여주 인자의 순서를 반대하고 싶었 예제.
행동의이 유형은 모든 인수가 다른 유형의 때 괜찮지만, 인자가 같은 종류있다면 우리가 어떻게 순서를 지정합니까?
태그 - ARG의 생성자는 매개 변수를 전달하는 데있는 봄 순서를 나타내는 인덱스 속성을 제공합니다.
<bean id="constructorBean" class="it.mrwebmaster.di.constructor.bean"> <constructor-arg value="beanName" index="1" /> <constructor-arg ref="genericService" index="0" /> </ 빈>
또 다른 경우는 construttore 입력 예를 들어, 문자열로 표현할 수있는 두 두 개의 매개 변수로 허용하는 모호한 하나일 수 있습니다 :
공개 빈 (GenericService genericService, 문자열 beanName, invocationTimes 정수) {
슈퍼 ();
this.genericService = genericService;
this.beanName = beanName;
this.invocationTimes은 = invocationTimes;
}
그리고 nell'applicationContext. XML
<bean id="constructorBean2" class="it.mrwebmaster.di.constructor.bean"> <constructor-arg value="0" /> <constructor-arg value="beanName" /> <constructor-arg ref="genericService" /> </ 빈>이 경우 "0"으로 오류로부터 봄 문자열이나 숫자 중 하나가 될 수 있습니다. 이 문제를 해결하려면 색인 또는 attriburo 이렇게 type 속성을 사용합니다
<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" /> </ 빈>
특성 생성자 - ARG 또한 공장 메서드에 매개 변수를 전달하는 데 사용할 수 있습니다 :
공공 정적 콩 createBean (GenericService genericService, 문자열 beanName, invocationTimes 정수) {
콩 B = 새로운 빈 (genericService, beanName, invocationTimes);
/ / 마십시오 somethig .......
B를 반환;
}
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" /> </ 빈>
| |
리눅스 (코스)
오픈 소스 시스템에 완료 안내. 49 €에서. |
| |
PHP (코스)
동적 웹 사이트를 만드는 전체 과정. 49 €에서. |
| |
레일에 루비와 루비 (코스)
루비와 RoR과 함께 소프트웨어와 웹 응용 프로그램을 만듭니다. 39 €에서. |