1. IoC Container ( 스프링 컨테이너 )
앞서 살펴본 IoC는 "제어의 역전", IoC Container에게 제어의 권한을 넘긴다고 설명을 했었다. IoC Container는 객체를 의존성 주입을 시켜주기 위한 객체들을 모두 컨테이너에 넣어서 보관을 하게 된다. 해당 컨테이너는 내부의 객체들을 관리합니다. 과정으로는 먼저 컨테이너에 의해 인스턴스화 되고, 인스턴스화 된 객체들은 의존성 주입이 자동으로 됩니다.
이렇듯, IoC Container는 Bean(객체) 들을 관리하며, 자동으로 의존성을 주입해주는 역할을 한다.
* IoC Container가 관리하는 객체들은 모두 Bean이다.
- IoC 컨테이너는 자바의 객체로써 존재한다.
- 대표적인 구현체로는 BeanFactory 와 이를 확장한 인터페이스인 ApplicationContext 가 있다.
- ApplicationContext는 Bean 관리 외에도 다양한 부가 기능을 제공 하고, 실제 애플리케이션에서 많이 사용됨
* ApplicationContext 및 IoC 컨테이너를 이루는 구현체들의 대해서는 다음 장에 다룰 예정이다.
2. Bean
IoC Container에서 관리되는 객체 이다. 해당 Bean은 필요에 따라 인스턴스화 되어 객체로써 사용이 된다. 또한, 인스턴스화 된 Bean 객체는 IoC Container에 의해 자동으로 의존성 주입이 된다.
이러한 Bean들은 XML 구성파일 및 애너테이션 같은 메타데이터로 설정이 된다. 이를 통해 IoC Container는 어떤 객체가 필요하고, 어떤 의존성을 주입해야 할지 알 수 있다.
3. IoC 컨테이너 Bean 등록
- IoC 컨테이너가 관리하게 될 객체들을 Bean으로 만드는 것을 Bean 등록이라고 한다.
- IoC 컨테이너는 Bean을 관리하기 위해서는 Bean으로 만들어질 객체에 대한 정보가 필요하다.
- IoC 컨테이너는 메타데이터를 읽어들여, 객체를 Bean으로 등록을 한다. IoC 컨테이너에서 이루어지는 과정이다.
- 여기서 말하는 메타데이터는 크게 애너테이션 방식과 XML 방식이 존재하며 그 밖에도 더 존재한다.
* IoC 컨테이너가 Bean 정보가 들어있는 메타데이터를 읽는 자세한 방식은 다음장 에서 다룰 예정이다.
참조 ( Spring 공식 문서 )
https://docs.spring.io/spring-framework/reference/core/beans/introduction.html
'Spring Framework' 카테고리의 다른 글
[Spring Framework] (4) - IoC 컨테이너 동작 원리 (0) | 2024.11.14 |
---|---|
[Spring Framework] (2) - IoC & DI 개념 이해 하기 (0) | 2024.10.20 |
[Spring Framework] (1) - Spring & Spring Framework 차이 (0) | 2024.10.19 |