스프링 컨테이너 스프링 빈
- 객체를 다루는 방법은 프로그래머가 프로그램 로직 상 필요한 객체를 그때그때 직접 생성하고 필요한 메서드를 호출하는 것이다. 하지만 스프링에서는 클래스의 인스턴스를 스프링에게 관리를 맡기게 된다. 이것이 스프링의 주요 특징 중 하나인 IoC(Inversion of Control)
- IoC는 제어의 역전이라 하며, 제어의 흐름을 바꾸는 것이다. 필요한 객체를 프로그래머가 직접 생성하는 것이 아니라 스프링이 생성한 객체를 가져와서 쓰게 된다.
- 이때 스프링이 객체들을 미리 생성해 관리하는 공간을 스프링 컨테이너라고 하며, 이렇게 스프링에 의하여 생성되고 관리되는 자바 객체를 스프링에선 빈이라고 한다.
스프링 컨테이너(Spring Container) : 스프링에서 자바 객체들을 관리하는 공간
스프링 빈(Spring Bean) : 스프링에 의하여 생성되고 관리되는 자바 객체
- 스프링 컨테이너에 빈을 등록하는 이유는 스프링이 각 객체들간의 의존관계를 관리하도록 하기위해 등록하는 것 이다.
DI(Dependency Injection)
- 클래스 간에 의존 관계가 있다는 것, 한 클래스가 바뀔 때 다른 클래스가 영향을 받는다는 것
- 말 그대로, 의존성을 다른 곳으로부터 주입해주는 것
DI의 사용 이유
- 두 객체 간의 결합도를 낮춰줌
- 테스트 작성이 편함
- 객체의 유연성을 높임