Develop Artifacts/Spring

Spring - 03. dependency-injection

@Autowired가 어떤 bean을 선택하는가 — 의존성 주입 패턴과 충돌 해결PaymentGateway 인터페이스를 구현한 bean이 3개다 — StripeGateway, TossGateway, MockGateway. Spring에 @Autowired PaymentGateway gateway를 요청하면 어떤 bean이 주입되는가? Spring은 타입으로 찾고, 이름으로 구분하고, 여전히 모호하면 예외를 던진다.이 글은 세 가지 주입 방식(생성자, 세터, 필드)의 차이, @Qualifier로 모호성을 해결하는 방법, 그리고 @Lazy와 선택적 주입(Optional) 패턴을 풀어간다. (Spring Framework Reference - DI)세 가지 주입 패턴1. 생성자 주입 (권장)// Spring ..

Develop Artifacts/Spring

Spring - 01. IoC DI

new를 직접 부르는 코드가 테스트하기 어려운 이유 — IoC와 DI가 해결하는 문제// Spring 없는 세계public class OrderService { private final PaymentGateway gateway = new StripePaymentGateway(); // 직접 생성 private final MailSender mailer = new SmtpMailSender(); // 직접 생성 public void process(Order order) { gateway.charge(order.getTotal()); mailer.send(order.getCustomerEmail(), "주문 완료"); }}이 코드는 ..

Archive

'Di' 2

Develop Artifacts/Spring

Spring - 03. dependency-injection

@Autowired가 어떤 bean을 선택하는가 — 의존성 주입 패턴과 충돌 해결PaymentGateway 인터페이스를 구현한 bean이 3개다 — StripeGateway, TossGateway, MockGateway. Spring에 @Autowired PaymentGateway gateway를 요청하면 어떤 bean이 주입되는가? Spring은 타입으로 찾고, 이름으로 구분하고, 여전히 모호하면 예외를 던진다.이 글은 세 가지 주입 방식(생성자, 세터, 필드)의 차이, @Qualifier로 모호성을 해결하는 방법, 그리고 @Lazy와 선택적 주입(Optional) 패턴을 풀어간다. (Spring Framework Reference - DI)세 가지 주입 패턴1. 생성자 주입 (권장)// Spring ..

댓글
Develop Artifacts/Spring

Spring - 01. IoC DI

new를 직접 부르는 코드가 테스트하기 어려운 이유 — IoC와 DI가 해결하는 문제// Spring 없는 세계public class OrderService { private final PaymentGateway gateway = new StripePaymentGateway(); // 직접 생성 private final MailSender mailer = new SmtpMailSender(); // 직접 생성 public void process(Order order) { gateway.charge(order.getTotal()); mailer.send(order.getCustomerEmail(), "주문 완료"); }}이 코드는 ..

댓글

wall

방명록

방문 흔적을 남겨주세요. 질문이나 인사 모두 환영합니다.