● IoC(Inversion of Control)란?
- IoC는 제어의 역전이라는 뜻으로 프로그램의 제어의 흐름을 직접 제어하는 것이 아니라 외부에서 관리하는 것을 말한다. 이전에는 개발자가 객체를 생성하고 관리하며 프로그램의 제어 흐름을 스스로 조종했다. 하지만 Spring을 이용하면 스프링 컨테이너가 프로그램의 제어흐름을 제어하게 된다.
● 스프링 컨테이너(Spring Container)란?
- 스프링 컨테이너는 스피링의 빈(Bean)을 생성하고 관리한다. 스프링 컨테이너는 IoC Container 혹은 DI Container라고 불리는데, 이는 스프링 컨테이너가 IoC 혹은 DI를 도맡아 진행하기 때문이다. 즉, 스프링 컨테이너는 스프링 Bean들을 생성하고, 이들의 의존 관계를 연결해 주는 역할을 한다.
이러한 스프링 컨테이너는 BeanFctory와 Application Context로 나뉘는데 둘의 내용은 다음과 같다.
● BeanFactory
- 스프링 컨테이너의 최상위 인터페이스이다.
- 스프링 빈을 관리하고 조회하는 역할을 담당한다.
● ApplicationContext
- BeanFactory 기능을 모두 상속받아 제공한다.
- 다음과 같은 부가기능들을 제공한다.
- 메시지 소스를 활용한 국제화 기능
- 환경변수 - 로컬, 개발, 운영 등을 구분해서 처리
- 애플리케이션 이벤트 관리
- 편리한 리소스 조회
보통 스프링 컨테이너라 하면 ApplicationContext를 뜻한다. BeanFactory의 모든 기능을 상속 받는데다 편리한 부가기능을 제공하기 때문에 BeanFactory 보다는 ApplicationContext를 사용한다.
● 스프링 빈(Bean)이란?
스프링 공식문서에서 확인해 보자면
스프링에서는, 스프링 IoC컨테이너에 의해 관리되고 애플리케이션의 핵심을 이루는 객체들을 Bean이로고 부른다. Bean은 스프링 IoC 컨테이너에 의해 인스턴스화되어 조립되거나 관리되는 객체를 말한다.
즉, 스프링 빈은 스프링 컨테이너에 의해 만들어지고 관리되는 객체라는 뜻이다.
[Spring] IoC,DI, 스프링 컨테이너(Container), 스프링 빈(Bean)이란? (tistory.com)
[Spring] IoC,DI, 스프링 컨테이너(Container), 스프링 빈(Bean)이란?
IoC(Inversion of Control)란? IoC는 제어의 역전이라는 뜻으로 프로그램의 제어 흐름을 직접 제어하는 것이 아니라 외부에서 관리하는 것을 말한다. 이전에는 개발자가 객체를 생성하고 관리하며 프로
code-lab1.tistory.com
'Programming > Spring' 카테고리의 다른 글
@Controller와 @RestController (0) | 2022.10.30 |
---|---|
@RequestBody, @ModelAttribute, @RequestParam (0) | 2022.10.30 |
서블릿(Servlet) 이란? (0) | 2022.10.30 |
의존관계 주입(Dependency Injection), 의존성 주입이란? (0) | 2022.10.29 |
좋은 객체 지향 설계의 5가지 원칙(SOLID) (0) | 2022.10.27 |
댓글