스프링 IoC 컨테이너 및 빈 입문

이 챕터에서는 스프링 프레임워크에서 제어 역전(Inversion of Control; IoC)을 구현하는 원칙을 다루겠습니다. 의존성 주입(Dependency Injection; DI)은 제어 역전의 형식 중 하나로, 객체가 자신이 작업할 다른 객체(즉, 의존성)를 생성자 인자, 팩토리 메소드의 인자 또는 객체 인스턴스가 생성되거나 팩토리 메소드에서 반환된 후에 설정되는 속성을 통해서만 정의하는 방식입니다. IoC 컨테이너는 빈을 생성할 때 이러한 의존성을 주입합니다. 이 과정은 본질적으로, 빈 자체가 클래스의 직접적인 생성이나 Service Locator 패턴과 같은 매커니즘을 사용해 의존성을 생성하거나 위치를 제어하는 것과 반대되므로 제어의 역전이라는 이름이 붙었습니다.

org.springframework.beans와 org.springframework.context 패키지는 스프링 프레임워크의 IoC 컨테이너에서 기본적으로 사용됩니다. BeanFactory 인터페이스는 어떤 종류의 객체를 관리할 수 있는 향상된 설정 매커니즘을 제공합니다. ApplicationContext는 BeanFactory의 자식 인터페이스로 아래의 요소들을 추가해줍니다.

  • 스프링 AOP 요소들의 쉬운 통합
  • 국제화에 사용되는 메시지 리소스 처리
  • 이벤트 발행
  • 애플리케이션 계층에서의 특정 컨텍스트(예 : 웹 애플리케이션에 사용하기 위해 WebApplicationContext 인터페이스를 사용)

간략하게 설명을 드리자면 BeanFactory는 설정에 필요한 프레임워크와 기본 기능을제공합니다. 그리고 ApplicationContext는 엔터프라이즈 전용 기능을 추가해줍니다. ApplicationContext는 BeanFactory의 상위 집합이며, 스프링 IoC 컨테이너에서만 사용됩니다.

만약 BeanFactory를 ApplicationContext 대신 사용하고 싶으시면 BeanFactory API 문서를 확인해주세요.

스프링에서는 애플리케이션에서 중요한 역할을 수행하고, 스프링 IoC 컨테이너에서 관리하는 객체는 빈(Bean)으로 불립니다. 빈은 실체화 및 결집되었으며, 스프링 IoC 컨테이너가 관리하는 객체입니다. 그 외에는 빈은 애플리케이션 객체들 중 하나입니다. 빈과 빈들 간의 종속성은 컨테이너에서 사용하는 구성 메타데이터에 반영됩니다.

Leave a Reply

Your email address will not be published. Required fields are marked *