-
[Spring] 스프링 프레임워크의 IoC 컨테이너와 빈Spring 2019. 8. 21. 10:24
스프링 프레임워크의 Inversion of Control (IoC) 원칙 그리고 빈에 대해서 알아보자.
IoC (Inversion of Control) 란
_IoC는 dependency injection (DI) 로도 알려져 있음
_객체들의 의존성 (다른 객체들과 함께 동작하는 방식) 을 생성자 인자나 팩토리 메소드 인자 또는 속성을 통해서만 정의하는 방법
_컨테이너는 빈을 생성할 때 그들의 의존성을 주입
_클래스 생성 지시나 서비스 로케이터 패턴등의 메커니즘을 사용하여 근본적으로 빈이 스스로 인스턴스하는 것이나 의존성들의 위치를 컨트롤하여 근본적으로 역전 (그래서 이름이 제어의 역전이다) 하는 과정을 의미
스프링 IoC 제공 패키지
_The org.springframework.beans 와 org.springframework.context 는 둘다 스프링 프레임워크의 IoC 컨테이너의 기본 패키지
_BeanFactory 인터페이스는 모든 타입의 객체를 다룰 수 있는 메커니즘을 제공
_ApplicationContext 는 BeanFactory의 서브 인터페이스로 다음의 추가적인 사항을 제공:
ㄴ Easier integration with Spring’s AOP features
ㄴ Message resource handling (for use in internationalization)
ㄴ Event publication
ㄴ Application-layer specific contexts such as the WebApplicationContext for use in web applications.
_간단하게, BeanFactory가 프레임워크의 기본적인 기능을 제공한다면, ApplicationContext는 좀 더 엔터프라이즈 기능을 추가한 것
스프링 컨테이너와 빈
_스프링에서, 객체들은 애플리케이션의 구조를 이룸
_빈이란, 스프링 IoC컨테이너에 의해 관리되는 이러한 객체
_빈은 스프링 IoC 컨테이너에 의해 생성, 조립, 관리되는 객체를 의미
_스프링 컨테이너는 설정 메타 데이터를 사용하여 빈과 의존성이 있는 빈들을 연결
스프링 공식 문서 - Introduction to the Spring IoC Container and Beans'Spring' 카테고리의 다른 글
[Spring] 어노테이션 기반 컨테이너 설정 (0) 2019.08.22 [Spring] 스프링 REST서버에서 에러를 처리하는 방법 (0) 2019.06.03 [Spring] @Resource, @Inject, @Autowired (0) 2019.05.26 [Spring] 간단한 웹 MVC 프로젝트 (0) 2019.05.12 [Spring] 스프링 웹 MVC 개요 (0) 2019.05.11 댓글