🍀 Spring
Spring Container: IoC Container
정의
Bean을 관리하는 객체
싱글턴 패턴을 적용하지 않아도 객체 인스턴스를 싱글톤으로 관리한다.
이러한 기능 덕분에 싱글톤 패턴의 모든 단점을 해결하고 객체를 싱글톤으로 유지할 수 있다.
BeanFactory에 여러가지 컨테이너 기능을 추가한
ApplicationContext ~= Spring Container
스프링에서는 'ApplicationContext'가 필요한 객체들을 생성하고, 필요한 객체들을 주입하는 역할을 하는 구조
목적 및 특징
- 객체의 생성을 책임진다.
- Bean객체를 생성하고(instantiating) 설정하고(configuration) 조립(assembling)한다.
- 의존성을 관리한다.
- 스프링 컨테이너는 설정 정보를 참고해서 의존관계를 주입
- POJO의 생성, 초기화, 서비스, 소멸에 대한 권한을 가진다.
장점
IoC: Inversion of Control단점
예시
스프링에서는 'ApplicationContext'가 필요한 객체들을 생성하고, 필요한 객체들을 주입하는 역할을 하는 구조
따라서 스프링을 사용하면 객체와 객체를 분리해서 생성하고, 이런 객체들을 엮는 작업을 하게 됩니다.(Wiring)
ApplicationContext가 관리하는 객체들을
BeanFactory VS ApplicationContextBean
이라고 칭하고, 빈과 빈 사이의 의존 관계를 처리하는 방식으로 XML, Annotation, Java 등 다양한 방식이 사용됩니다.