IT/Spring

[Spring] Spring IoC Container

어린이개발자 2023. 5. 21. 21:13

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