Spring - @Autowired와 @Qualifier

jodbsgh·2022년 4월 1일
0

🍕"Spring"

목록 보기
9/19
post-thumbnail

@Autowired

DI를 할 때 xml을 대신하는 어노테이션

@Autowired
@Override
public void setExam(Exam exam){
	this.exam = exam;
}


////////////////////////////////////
<context:annotation-config/>
<!-- 어노테이션을 읽어라-->
<bean id="exam" class="entry.NewlecExam" p:kor="10" p:eng="10"/>

Autowired는 뭔 기준으로 찾을까?
자료형을 기준으로 찾는다. 즉, 참조할 수 있는 객체를 찾아서 자동으로 찾아서 바인딩을 해준다.

만일 xml파일에 충돌이 날 수 있는 경우

<context:annotation-config/>
<!-- 어노테이션을 읽어라-->
<bean class="entry.NewlecExam" p:kor="10" p:eng="10"/>
<bean class="entry.NewlecExam" p:kor="20" p:eng="20"/>

이경우 id=""를 설정해주면 public void setExam(참조명 매개변수명) 함수의 매개변수명과 같을 시 주입이 실행된다.

@Qualifier

@Autowired
@Qualifier("exam1")		//xml의 id="exam1"을 찾아 바인딩해라
@Override
public void setExam(Exam exam){
	this.exam = exam;
}

/////////////////////////////////
<context:annotation-config/>
<!-- 어노테이션을 읽어라-->
<bean id="exam1" class="entry.NewlecExam" p:kor="10" p:eng="10"/>
<bean id="exam2" class="entry.NewlecExam" p:kor="20" p:eng="20"/>

@Qualifier는 xml의 객체 id를 찾아 바인딩하도록 하는 Annotation이다.

profile
어제 보다는 내일을, 내일 보다는 오늘을 🚀

0개의 댓글