@Component
public class Car{
...
}
public class Ray implements Car{
...
}
public class Genesis implements Car{
...
}
public class test{
@Autowired
private Car car;
...
}
레이, 제네시스 둘다 Car.java를 구현했다. 그리고 test.java에서 car객체의 의존성 주입을 했고,
컨테이너 초기화시 Exception을 발생했다!
이는 컨테이너가 car를 빈으로 등록하려하자 등록할 수 있는 후보가 여러개이기 때문에 발생한다.
이를 해결해주는 어노테이션이 @Qualifier이다.
@Component
public class Car{
...
}
@Qualifier("ray") //qualifier로 식별자(bean id)를 ray로 지정
public class Ray implements Car{
...
}
@Qualifier("genesis") //qualifier로 식별자(bean id)를 genesis로 지정
public class Genesis implements Car{
...
}
public class test{
@Autowired
@Qualifier("genesis") //qualifier의 식별자가 genesis인 bean을 주입해주세요.
private Car car;
...
}
* 주의점
- @Qualifier안에서 명시한 값(식별자)를 가진 객체가 없다면 Exception 발생
'Programming > 삽질일기' 카테고리의 다른 글
[Java] 테스트 코드에서 lombok 사용하기 (0) | 2023.12.29 |
---|---|
[Java] JMH 벤치마크 중 org.openjdk.jmh.runner.RunnerException: ERROR: Another JMH instance might be running. (1) | 2023.12.27 |
[Java] java.lang.UnsupportedOperationException ImmutableCollections (0) | 2023.12.20 |
[JS, WEB] bfcache와 웹 브라우저 최적화 (뒤로 / 앞으로 캐시) (0) | 2023.02.28 |
[TIP] 부정조건문은 의미해석이 쉽지 않다. (0) | 2022.03.08 |
댓글