Skip to main content

스프링 IoC 컨테이너와 빈 소개

SpringLess than 1 minute

원문 : https://docs.spring.io/spring-framework/docs/current/reference/html/core.html#beans-introductionopen in new window

이번 장은 제어의 역전(Inversion of Control, IoC) 원칙에 대한 스프링 프레임워크 구현에 대해 다룹니다.
IoC는 또한 의존성 주입(DI, Dependency Injection)으로도 알려져 있습니다.
객체의 의존성(즉, 함께 작업하는 다른 객체)을 생성자 인수, 팩토리함수의 인수 또는 팩토리 함수로부터 생성되거나 반환된 객체 인스턴스로 설정된 속성을 통해서만 정의하는 프로세스입니다.
컨테이너는 빈을 생성할 때 이 의존성을 주입합니다.
이 프로세스는 근본적으로 클래스를 직접 구성 또는 Service Locator 패턴과 같은 메커니즘을 사용하여 의존성에 대한 인스턴스화나 위치를 제어하는 빈 자체의 역(따라서 이름이 제어의 역전)입니다.

org.springframework.beansorg.springframework.context 패키지가 스프링 프레임워크 IoC 컨테이너의 기본이 됩니다.
BeanFactoryopen in new window 인터페이스는 모든 유형의 객체를 관리할 수 있는 진보된 구성 메커니즘을 제공합니다.
ApplicationContextopen in new windowBeanFactory의 하위 인터페이스입니다.
다음을 추가한 것 입니다.

  • 스프링 AOP 특징과의 쉬운 통합
  • 메시지 리소스 처리(국제화의 사용을 위함)
  • 이벤트 발행
  • 웹 어플리케이션에서 사용되는 WebApplicationContext와 같은 어플리케이션-레이어 특화 컨텍스트

짧게 말하면, BeanFactory는 구성 프레임워크와 기본 기능을 제공하고, ApplicationContext는 좀더 엔터프라이에 특화된 기능을 추가한 것 입니다.
ApplicationContextBeanFactory를 완벽하게 호환하며 이번 장에서 설명하는 스프링 IoC 컨테이너에 독점적으로 사용됩니다.
ApplicationContext대신 BeanFactory 사용에 관한 상세한 내용은 1.16 BeanFactory를 참고하세요.

스프링에서 어플리케이션의 중추를 형성하고 스프링 IoC 컨테이너에 관리되는 객체를 빈이라고 부릅니다.
빈은 스프링 IoC 컨테이너에 인스턴스화되고, 조립되고 관리되는 객체입니다.
그렇지 않으면 빈은 어플리케이션의 수많은 객체중 하나입니다.
빈과 빈 간의 종속성은 컨테이너에서 사용되는 구성 메타데이터에 반영됩니다.