@Autowired
- 같은 타입 조회하여 매칭
- 같은 타입이 두개 이상이면 필드 명, 파라미터 명으로 빈 이름 추가 매칭
👉 필드 명을 빈 이름으로 변경하여 매칭
@Quilifier
@Qualifier("name")
- 추가 구분자 사용
- 빈 등록시 / 주입시 애노테이션 작성
주입시 못 찾으면 같은 이름의 스프링 빈을 추가로 조회
but, @Qualifier 를 찾는 용도로만 사용하는게 명확하고 좋음
순서
@Quilifier 끼리 매칭
-> 빈 이름 매칭
-> NoSuchBeanDefinitionException 예외 발생
@Primary
- 우선순위를 정하는 방법
- @Autowired 시에 여러 빈이 매칭되면 @Primary 가 우선권을 가진다.
🔎 우선순위
@Primary 는 기본값 처럼 동작 , @Qualifier 는 매우 상세하게 동작
스프링은 자동보다는 수동이, 넒은 범위의 선택권 보다는 좁은 범위의 선택권이 우선
순위가 높다. 따라서 @Primary 보다 @Qualifier 가 우선권이 높다.