객체 간 의존 관계를 객체 자신이 아닌 외부의 조립기가 수행한다.
Spring에서 아래와 같은 방법을 통해서 DI를 Injection 해줌.
Benefits
쉽게 자동차를 예로 들어보자.
전용모듈
전용모듈로 개발 되었다면 해당 모델 밖에 만들 수 없음(만든다고 해도 엄청 복잡한 작업이 될수 밖에 없다.)
공용모듈
껍데기만 갈아끼우는 것으로 여러가지 모델을 만들 수 있음.
객체에 대한 제어권이 개발자로부터 IoC 컨테이너에게 넘어가면서
객체의 생성부터 생명주기 관리까지의 모든 것을 IoC 컨테이너가 관리하게 되는것.
기존에 개발자들이 객체간의 의존관계가 있는 객체들을 직접 생성하게 된다면, 생성부터 소멸까지 전부 관리해 줘야 하지만, SPRING에서는 이러한 객체를 미리 생성해 두어서 IoC에 보관해 놓았다가 필요한 내용만 주입한 후 사용하기 때문에 개발자가 관리해야 될 것이 줄어든다.
스프링에서 제어권을 가지고 직접 만들어 관계를 부여하는 오브젝트.
IoC 컨테이너가 관리하는 자바 객체, Spring Bean 컨테이너에 보관되어 있다. 각각의 Bean은 의존성 주입을 통해 사용가능하다.
- youtube.com/watch?v=xQpdr-nsZok
- https://yaboong.github.io/spring/2019/08/29/why-field-injection-is-bad/
- https://velog.io/@gillog/Spring-Bean-%EC%A0%95%EB%A6%AC