🍀 Spring

Spring Container: IoC Container

정의

Bean을 관리하는 객체
싱글턴 패턴을 적용하지 않아도 객체 인스턴스를 싱글톤으로 관리한다.
이러한 기능 덕분에 싱글톤 패턴의 모든 단점을 해결하고 객체를 싱글톤으로 유지할 수 있다.
BeanFactory에 여러가지 컨테이너 기능을 추가한 ApplicationContext ~= Spring Container
스프링에서는 'ApplicationContext'가 필요한 객체들을 생성하고, 필요한 객체들을 주입하는 역할을 하는 구조

목적 및 특징

notion image
  • 객체의 생성을 책임진다.
    • Bean객체를 생성하고(instantiating) 설정하고(configuration) 조립(assembling)한다.
  • POJO의 생성, 초기화, 서비스, 소멸에 대한 권한을 가진다.

장점

IoC: Inversion of Control

단점

예시

스프링에서는 'ApplicationContext'가 필요한 객체들을 생성하고, 필요한 객체들을 주입하는 역할을 하는 구조
따라서 스프링을 사용하면 객체와 객체를 분리해서 생성하고, 이런 객체들을 엮는 작업을 하게 됩니다.(Wiring)
ApplicationContext가 관리하는 객체들을 Bean이라고 칭하고, 빈과 빈 사이의 의존 관계를 처리하는 방식으로 XML, Annotation, Java 등 다양한 방식이 사용됩니다.
BeanFactory VS ApplicationContext