Spring IoC Container 의 개념에 대한 정리를 하고자 글을 쓴다.
1. Spring IoC Container 의 역할
- Spring Framework 에서 객체를 생성하고 관리하고 책임지고 의존성을 관리 해주는 컨테이너
- IoC (Inversion of Control, 제어의 역전)
- 개념
- 객체의 생성, 생명 주기의 관리 등 모든 객체에 대한 제어권이 내부에서 외부로 역전
- 사용 이유
- 역할과 관심을 분리해 응집도를 높이고 결합도를 낮추며, 이에 따라 변경에 유연한 코드를 작성할 수 있는 구조를 만들어
객체 지향 원칙을 잘 지킬 수 있기 때문
- DI (Dependency Injection) 개념과의 비교
- DI 는 의존 방향의 역전을 의미
- 고수준 모듈이 저수준 모듈에 의존하던 문제를 해결
- 고수준 모듈, 저수준 모듈 모두 추상화에 의존
- DI 패턴
- 1. 생성자 주입
- 2. Setter 주입
- 3. Interface 주입
- 애플리케이션 컴포넌트의 중앙 저장소
2. Spring IoC Container 의 종류
- 1) BeanFactory
- Bean 설정 소스로부터 Bean 정의를 읽어들이고, Bean 을 구성하고 제공한다. (Bean 을 관리)
- 2) ApplicationContext
- Bean 을 관리하는 BeanFactory 의 기능 외에 여러 가지 기능을 가지며, 그 기능은 다음과 같다.
- 메시지 소스 처리 기능 (i18n), 이벤트 발행 기능, 리소스 로딩 기능 등
3. Bean
- Spring IoC Container 가 관리하는 객체
- 특징
- 의존성 관리
- Scope
- Singleton: 하나
- Prototype: 매번 다른 객체
- LifeCycle Interface
- 등록 방법
- @Bean, @Component
4. 출처
- https://www.youtube.com/watch?v=L-0UvbFUXrk [백기선 스프링 프레임워크 핵심기술 - IOC Container and Bean]
- https://dev-coco.tistory.com/80
'IT > Spring' 카테고리의 다른 글
[Spring] WebFlux 테스트 코드 작성 (0) | 2024.11.27 |
---|---|
[Spring] Spring Framework vs. Spring Boot (2) | 2024.11.14 |
[Spring] Entity, DTO, DAO, VO 란? (0) | 2022.11.30 |