개발공부/Spring
[Spring Framework] 생성자 DI
환타몬
2022. 1. 20. 23:32
Exam 객체 constructor 를 이용한 속성 값 설정
Exam exma = new NewlecExam(10,10,10,10) //생성자를 통해서 값을 설정해줄 수 있음.
1. NewlecExam 클래스로 이동 후 기본 생성자와 오버로딩 생성자 만듦.
1-1. ctrl + space 를 눌러 기본 생성자를 생성하고,
위의 이미지대로 눌러 오버로딩 생성자를 생성하도록 하자.
1-2. setting.xml 파일로 이동해서 constructor-arg를 생성하자.
<bean id = "exam" class = "spring.di.entity.NewlecExam">
<constructor-arg index="0" value = "10"/>
<constructor-arg index="1" value = "10"/>
<constructor-arg index="3" value = "10"/>
<constructor-arg index="2" value = "10"/>
</bean>
물론 index 뿐만 아니라 name 속성도 사용가능한데, 보통 name 속성을 많이 사용한다.
- 생성자 호출의 모호한 매개변수는 type또한 지정해줄 수 있다
<constructor-arg name = "eng" type="float" value="50 />
constructor 태그가 너무 번잡하다면 속성을 지정해줄 수 있음.
- 속성 설정 방법
1. 기존의 코드는 주석처리를 하고 bean 태그에 p속성을 추가해본다.
2. 오류가 뜨는데, 이는 bean의 기본 속성이 아니기 때문에 처리기를 따로 불러와야 함.
3. 하단의 namespaces라는 탭이 있는데, p를 체크
4. 그 후 source로 다시 넘어오면 아래처럼 p의 풀네임이 생성된 것을 확인할 수 있다.
namespace? 모듈이라는 단위가 있고, 충돌할 수 있음. 이를 방지하기 위해서 확장된 이름을 쓸 수 있음 :namespace
태그의 의미 :
1. 특정한 처리기에 의해 처리될 수 있도록 특정짓기 위함
2. 태그의 이름을 식별하기 위함
<bean id = "exam" class = "spring.di.entity.NewlecExam" p:kor="10" p:eng="10" />