-
[Spring] 생성자 DI프로그래밍 공부/Spring 2021. 4. 29. 23:39
뉴렉처 강사님의 동영상 강의를 정리한 글입니다.
xml에서 여러 field 값이 포함된 생성자를 통해 객체를 생성하는 법을 알아보자.
public NewlecExam(int kor, int eng, int math, int com) { this.kor = kor; this.eng = eng; this.math = math; this.com = com; }
위와 같은 생성자를 포함한 class를 선언하는 방법
1. 기본
<bean id="exam" class="spring.di.entity.NewlecExam"> <constructor-arg value= "10"/> <constructor-arg value= "20"/> <constructor-arg value= "30"/> <constructor-arg value= "40"/> </bean>
=> 어떤 field 값인지 알 수 없다.
2. index 이용
<bean id="exam" class="spring.di.entity.NewlecExam"> <constructor-arg index="0" value= "10"/> <constructor-arg index="3" value= "20"/> <constructor-arg index="1" value= "30"/> <constructor-arg index="2" value= "40"/> </bean>
=> index를 이용하여 입력되는 value의 순서를 조정할 수 있다. 하지만 여전히 어떤 field 인지 구분이 어렵다.
3. name 이용
<bean id="exam" class="spring.di.entity.NewlecExam"> <constructor-arg name="kor" value= "10"/> <constructor-arg name="eng" value= "20"/> <constructor-arg name="math" value= "30"/> <constructor-arg name="com" value= "40"/> </bean>
4. type 이용: 변수명은 같고 type이 다른 경우 사용
<bean id="exam" class="spring.di.entity.NewlecExam"> <constructor-arg name="kor" type="float" value= "10"/> <constructor-arg name="eng" type="int" value= "20"/> <constructor-arg name="math" type="int" value= "30"/> <constructor-arg name="com" type="float" value= "40"/> </bean>
5. 단일 태그로 속성 설정하기
1) namespace 사용 설정
xml 파일의 Namespaces에서 p에 체크하여 설정을 추가한다.
2) p 값을 사용하여 속성 값을 지정한다.
<bean id="exam" class="spring.di.entity.NewlecExam" p:kor="10" p:eng="10" p:math="10" p:com="10"/>
p 값을 이용하면 이를 bean 태그가 가진 속성으로 이해하지 않고 처리기가 담당한 속성으로 인식한다.
namespace (접두사)
1. 태그가 특정한 처리기에 의해 처리되도록 사용
2. 태그 이름을 식별하기 위해 사용
'프로그래밍 공부 > Spring' 카테고리의 다른 글
[Spring] Annotation 이용의 장점과 @Autowired를 이용한 DI (0) 2021.04.30 [Spring] 콜렉션 생성과 DI (0) 2021.04.30 [Spring] 값 형식 DI (0) 2021.04.29 [Spring] IoC 컨테이너 사용하기 (ApplicationContext 이용하기) (0) 2021.04.29 [Spring] 스프링 DI 지시서 작성하기 (Spring Bean Configuration) (0) 2021.04.29