중요 Spring 개념

참고
https://www.udemy.com/course/spring-boot-and-spring-framework-korean/learn/lecture

의존성 주입

Spring Framework에서는 Bean을 확인해야 하고, 의존성을 확인해야 하며 의존성을 Bean에 연결해야한다. 이 전체 과정을 의존성 주입(Dependency Injection)이라 부른다. 또는 제어의 역전(IoC)이라고도 한다. 예전에는 객체와 객체를 연결하는 코드를 프로그래머가 작성했다. 하지만 이제는 Spring Framework가 객체를 만들고 작성한다. 그래서 이것을 제어의 역전(프로그래머->스프링 프레임워크)이라고도 부르는 것이다. 의존성 주입의 종류는 생성자 주입, 세터 주입, 필드 주입 세 가지가 있다.

생성자 주입

의존성을 주입하기 위해 생성자(Constructor)를 호출한다면 생성자 주입이라고 한다.

세터 주입

세터(Setter) 메서드를 사용해 Bean에 의존성을 주입한다면 세터 주입이다.

필드 주입

만약, 세터나 생성자가 없을 때는 Spring Framework에서 리플렉션을 사용해 의존성을 주입하는데 이를 필드 주입이라 한다,

IoC 컨테이너

IoC 컨테이너, 또는 제어의 역전 컨테이너는 Spring Bean과 Bean의 수명을 책임지는 Spring IoC 컨테이너(컨텍스트)이다. IoC 컨테이너는 Bean 생성, 전체 수명, 종료를 관리한다. Spring IoC 컨테이너의 유형은 두 가지이며, 하나는 기본 Spring IoC 컨테이너인 Bean 팩토리이고, 두 번째 유형은 가장 자주 사용되고 거의 항상 사용되는 애플리케이션 컨텍스트이다. 애플리케이션 컨텍스트는 엔터프라이즈급 기능이 있는 고급 Spring IoC 컨테이너이며 웹 애플리케이션에서 사용하기 쉽다. 국제화 기능을 제공하며 Spring AOP와도 잘 통합된다.

Spring Bean

Spring Bean은 Spring에서 관리하는 객체이다. Spring에서 관리하는 모든 객체를 Spring Bean이라고 한다.

자동 연결(Auto-wiring)

Spring Bean이 있는 곳에는 의존성이 존재한다. Spring은 올바른 의존성을 찾아 Bean에 연결해야한다. 이 과정을 자동 연결이라고 한다.