Spring

Spring IoC Container

n.han 2017. 2. 24. 21:09

Spring container는 Spring Framework의 핵심입니다. container는 객체들을 만들고, 객체들을 묶어 주고, 설정하며, 생성 시점부터 파괴될 때까지의 라이프 사이클을 관리해줍니다. Spring container는 어플리케이션을 구성하는 컴포넌트들을 관리하기 위해서 dependency injection을 사용하며, 이 객체들을 Spring Beans라고 부른다.


Container은 configuration metadata를 통해서 어떤 객체를 초기화하고 설정하며 만들지 결정합니다. Configuration metadata는 XML이나 Java annotation, 혹은 Java 코드로 표현됩니다.


다음 그림은 어떻게 Spring이 작동하는 지 보여주는 대략적인 다이어그램입니다. Spring의 IoC Container는 Java POJO Class들과 configuration metadata를 사용하여 완벽히 configured 되어 있고 실행 가능한 시스템이나 어플리케이션을 만듭니다.



Spring은 다음 두 가지 종류의 container을 제공합니다.


  1. Spring BeanFactory Container
    BeanFactory Container는 org.springframework.beans.factory.BeanFactory interface에 정의된 DI를 지원하는 기본적인 Container입니다. BeanFactory와 BeanFactoryAware, InitializingBean, DisposableBean과 같은 관련된 인터페이스들은 Spring과 통합되는 많은 third-party framework들이 사용되기 때문에 여전히 존재합니다.

  2. Spring ApplicationContext Container
    이 Container는 enterprise-specific한 기능들이 더 있습니다. 예를 들면 관심 있는 이벤트 리스너에게 어플리케이션 이벤트를 발행하는 기능이나, 파일로부터 텍스트 형태의 메시지를 해석하는 기능 등 말입니다. 이 Container는 org.springframework.context.ApplicationContext라는 interface에 정의되어 있습니다.

    ApplicationContext container는 BeanFactory container의 모든 기능들을 가지고 있기 때문에, 이것을 사용하는 것을 추천합니다.
    하지만 BeanFactory는 여전히 모바일 디바이스나 데이터 볼륨과 속도가 중요한 가벼운 어플리케이션에 사용되긴 합니다.


'Spring' 카테고리의 다른 글

Spring Bean Post Processor  (0) 2017.02.27
init-method와 destroy-method 속성  (0) 2017.02.26
Spring Bean Scope  (0) 2017.02.24
Bean Definition  (0) 2017.02.24
Why do Java Webapps use .do extension?  (0) 2016.10.10