7. 생성자 DI
생성자 DI
앞에서 DI명세서를 작성할 때 bean태그 안에 property를 이용해서 작성해주었습니다. 그리고 이 경우 미리 작성해둔 set 함수가 실행되서 DI가 이루어집니다. 하지만 이렇게 set 함수만 사용할 수 있는 것은 아닙니다. DI명세서를 이용해서 생성자 DI를 할 수도 있습니다.
<bean id="exam" class="spring.di.entity.OhExam">
<!-- setter가 아닌 생성자로 초기화 -->
<constructor-arg index="0" value="10" />
<constructor-arg index="1" value="20" />
<constructor-arg index="2" value="30" />
<constructor-arg index="3" value="40" />
</bean>
이 경우 미리 오버로딩한 생성자인 아래 생성자가 실행됩니다.
public OhExam(int korean, int english, int math, int computer) {
this.korean = korean;
this.english = english;
this.math = math;
this.computer = computer;
}
index는 말 그대로 인자의 index, 즉 순서를 의미합니다. 이 예제에서는 0번은 korean, 1번은 english, 2번은 math, 3번은 computer가 됩니다.(name을 이용해서 각 프로퍼티의 이름으로 구분해줄수도 있습니다. 추가적으로 type을 이용해서 자료형도 구분해줄수도 있습니다.) 이것을 toString을 이용해서 출력할경우 아래와 같은 결과를 볼 수 있습니다.
OhExam [korean=10, english=20, math=30, computer=40]
이때 p라는 네임스페이스(태그 이름을 식별하기위해 사용(각 태그가 원래 자신을 처리하는 처리기에서 처리될 수 있도록!))를 이용해서 더욱 간략하게 사용할 수 있습니다.
xmlns:p="http://www.springframework.org/schema/p"
<bean id="exam" class="spring.di.entity.OhExam" p:korean="10" p:english="10" />
OhExam [korean=10, english=10, math=0, computer=0]
Author And Source
이 문제에 관하여(7. 생성자 DI), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@l0_0l/7.-생성자-DI저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)