190412
Q1. Autowired 어노테이션 붙인 서비스 인터페이스의 구현체가 여러개인 경우에는 어떤 구현체..?
A1. Autowired를 처리할 때 Bean객체를 찾는 과정이 Type을 먼저 보고, 이후에 Qualifier로 지정된 id를 확인하여 의존성 주입함
ex)
// 인터페이스
public interface MagicInterface {
void basicSpell();
...
}
=========================
// 구현체 Qualifier로 식별자를 "fire"로 지정
@Qualifier("fire")
public class FireMagic implements MagicInterface {
...
}
=========================
// Qulifier를 통해 서로 다른 구현체 주입
@Autowired
@Qualifier("fire")
private MagicInterface fireMagic;
@Autowired
@Qualifier("water")
private MagicInterface waterMagic;
@Autowired
@Qualifier("earth")
private MagicInterface earthMagic;
읽어볼 자료..
<생성자 기반의 의존성 주입>
Constructor Injection in Spring with Lombok | Baeldung