Dependency Injection(의존성 주입)
의존성 주입이 필요한 이유
기존 코드
public class MessageSender {
private EmailService emailService; // 구체적인 구현체에 의존
public MessageSender() {
this.emailService = new EmailService(); // 구체적인 구현체 생성
}
public void sendMessage(String message) {
emailService.sendMessage(message); // 구체적인 구현체의 메서드 호출
}
}의존성 주입을 이용한 코드
DI 3가지 방법(Spring)
1. 생성자 주입(가장 권장되는 방법)
2. Field 주입
3. 수정자 주입(Setter Injection)
4. 일반 메서드 주입
생성자 주입을 사용하는 이유
1. 순환 참조 방지
2. 불변성
3. 테스트 용이
Lombok 활용
두 개 이상의 빈이 존재하는 경우
1. @Autowired 필드명 매칭
2. Qualifier 사용
3. @Primary 사용
수동 빈 등록 하는 상황
Last updated