웹 프로그래밍/Spring
[Spring] DI 실습(1) 의존관계일 때의 번거로운 상황 설명 : 생성자 주입, 속성 주입(setter injection)의 필요성
산을넘는다
2020. 8. 13. 13:25
순서가 좀 꼬여있다.
DI(Dependency Injection)는 의존 주입이다.
의존성은 has-a 패턴일때만 의미가 있다.
Car 클래스에 타이어를 장착해보자.
어떤 브랜드의 타이어를 장착 시킬까요?
Car 클래스는 Tier 인터페이스에 대해 의존성을 가지고 있다.
- 자동차는 타이어가 있어야 하잖아.
- 타이어가 없으면 Car가 움직이지 않기 때문에, 콤포지션 관계이다. : 생명 주기를 같이할 때 콤포지션 관계
- (다른 관계는 어그리게이션 관계가 있다.) : 생명주기가 다를 때 ? 어그리게이션 관계
아래 처럼, 의존관계가 발생해서 타이어를 바꾸고싶다면 Car라는 클래스의 코드도 바꿔야 한다.
이런 번거로움을 해결하기 위해 생성자 주입, 속성주입(setter injection)을 사용한다.