WEB/Spring

[Spring] 의존 객체 선택

노력의천재 2020. 4. 4. 16:38

@Autowired, @Resource를 통한 의존 객체 자동주입을 할 때 동일한 객체가 2개 이상인 경우 스프링 컨테이너는 자동 주입 대상 객체를 판단하지 못해서 Exception 에러를 발생시킵니다.

 

이를 해결하기 위해서 xml 파일에서 bean 객체에 <qualifier> 라는 우선순위를 정하는 태그를 추가해 '이 객체를 우선적으로 쓰겠다.' 라는 것을 명시해주고 @Qualifier 라는 어노테이션을 @Autowired나 @Resource를 사용하는 곳에 속성값으로 추가시켜줘야 합니다.

 

'wordDao1'을 qualifier를 통해 우선 객체로 설정

 

또 다른 방법으로는 @Inject 어노테이션을 사용할 경우 @Named 어노테이션을 추가하는 것 입니다.

 

'wordDao1'을 @Named 어노테이션을 통해 우선 객체로 설정

 

※ 실무에서는 @Inject 보다 @Autowired를 이용해 의존 객체 자동주입 하는 것을 선호한다고 합니다!

 

 

출처 : 인프런, 자바 스프링 프레임워크 - 신입 프로그래머를 위한 강좌