728x90
반응형

의존관계 주입 2

[스프링 핵심 원리] 다양한 의존관계 주입 방법

의존관계 주입은 크게 4가지 방법이 있다. 생성자 주입 수정자 주입(setter 주입) 필드 주입 일반 메서드 주입 1. 생성자 주입 지금까지 진행했던 방법 생성자 호출시점에 딱 1번만 호출되는 것이 보장 '불변, 필수' 의존관계에 사용 OrderServiceImpl을 확인해보자. @Autowired public OrderServiceImpl(MemberRepository memberRepository, DiscountPolicy discountPolicy) { this.memberRepository = memberRepository; this.discountPolicy = discountPolicy; } 생성자를 통해서만 DI가 되며, 누구도 외부에서 수정할 수 없다. 생성자가 딱 1개만 있으면 @Au..

Tech/Spring 2022.01.17

[스프링 핵심 원리] DIP와 생성자 주입, 의존관계 주입(DI)

애플리케이션을 개발하던 중, DIP에 위반할 수 밖에 없는 상황이 왔다. DIP - 의존 관계를 맺을 때 변화하기 어려운 것, 거의 변화가 없는 것에 의존 - 구현 클래스에 의존하지 말고 인터페이스에 의존해야 한다. - 역할에 의존하게 해야 한다. (역할과 구현을 철저하게 분리하도록!!) 아래 코드를 보자. private final DiscountPolicy discountPolicy = new FixDiscountpolicy(); 결국 인터페이스를 참조하는게 아닌, 직접 객체를 생성을 하게 되는 것이다. 이를 해결하려면 어떻게 해야 할까? 강의에서는 애플리케이션을 하나의 공연으로 비유했다. 각각의 인터페이스는 배역이라고 생각할때, 해당 배역을 맡게 되는 배우를 선택하는 역할은 공연 기획자가 할 것이다...

Tech/Spring 2022.01.01
728x90
반응형