(1) IoC 컨테이너의 역할
개발자가 정의한 객체들을 Bean으로 IoC 컨테이너에 보관을 해두고, 스프링을 통해 자동으로 의존성 주입을 할 때 Bean을 객체로 만들어 의존성을 주입을 해주는 역할을 한다.
( 해당 부분은 스프링 서버가 뜰 때 즉, 초기화 시점에 객체에 대한 의존성 주입이 이뤄진다. )
코드적으로 org.springframework.context.ApplicationContext는 Spring IoC 컨테이너를 나타낸다.
핵심
객체의 생성과 생명주기를 관리해주는 핵심 컴포넌트이다.
(2) IoC 컨테이너의 Bean(객체) 관리 과정
IoC컨테이너가 Bean을 관리하는 과정은 크게 7가지가 존재 ( 또한, 빈 생명주기 과정으로도 볼 수 있다. )
( 해당 과정은 초기화 시점인 스프링 서버가 초기에 뜰 때 초기화하는 과정을 의미 한다. )
- 1. 빈 정의 읽기: 설정 파일 또는 애너테이션을 통해 빈 정의를 읽는다.
- 2. 빈 등록: IoC 컨테이너에 빈을 등록한다.
- 3. 빈 생성: 빈 객체를 생성한다.
- 4. 의존성 주입: 생성된 빈 간에 의존성 주입이 이루어진다.
- 5. 빈 초기화: 빈이 초기화되고 필요한 작업을 수행한다.
- 6. 빈 사용: 의존성 주입이 완료된 후, 빈이 실제로 사용된다.
- 7. 빈 소멸: 애플리케이션 종료 시 빈이 소멸된다.
이 과정을 통해 스프링 IoC 컨테이너는 객체의 생성부터 소멸까지 모든 생명주기를 관리하며, 개발자가 빈의 생명주기를 직접 관리할 필요 없이 스프링이 자동으로 처리를 해준다.
이러한 과정은 코드적으로 org.springframework.context.ApplicationContext IoC컨테이너 내부에서 이뤄지는 과정이다.
결과적으로 스프링 프레임워크는 프레임워크로써 라이프사이클 속에서 개발자가 특정 부분만 개발을 하면 잘 동작을 하게 된다. 해당 라이프사이클에 포함이 되어있는 과정은 스프링 서버가 뜰 때 IoC컨테이너가 올라가며, 해당 컨테이너 내부에 개발자가 직접 기재해놓은 객체 Bean들을 등록을 하는 과정이 포함이 되어있다. Bean으로 등록을 한 뒤 다음 과정으로는 애너테이션을 활용하여 해당 Bean 객체를 주입을 해주게 된다. 이게 스프링 서버가 뜰 때 초기화를 하는 과정이다.
해당 과정은 내부의 코드로 직접 구현이 다 되어있다. 이게 스프링 라이프사이클이다.
참조 ( Spring 공식 문서 )
https://docs.spring.io/spring-framework/reference/core/beans/basics.html
'Spring Framework' 카테고리의 다른 글
[Spring Framework] (3) - IoC 컨테이너 & Bean 개념 이해 하기 (1) | 2024.10.21 |
---|---|
[Spring Framework] (2) - IoC & DI 개념 이해 하기 (0) | 2024.10.20 |
[Spring Framework] (1) - Spring & Spring Framework 차이 (0) | 2024.10.19 |