티스토리 뷰
IoC의 개념
IoC(제어권의 역전)이란, 객체의 생성, 생명 주기의 관리까지 모든 객체에 대한 제어권이 바뀌었다는 것을 의미하는 디자인 패턴.
-> 프레임워크에서 개발자의 코드에 객체를 주입함으로써 개발자가 신경써야 할 코드를 줄이는 전략.
IoC의 분류
IoC | DL (Dependency Lookup) 의존성 검색 | 저장소에 저장되어 있는 Bean에 접근하기 위해 컨테이너가 제공하는 API를 이용하여 Bean을 Lookup하는 것. |
DI (Dependency Injection) 의존성 주입 | 각 클래스간의 의존관계를 빈 설정 (Bean Definition) 정보를 바탕으로 컨테이너가 자동으로 연결해주는 것. -> DI의 종류로는 Setter Injection / Constructor Injection / Method Injection 이 있다. |
DI의 개념
정의 | 각 클래스간의 의존관계를 빈 설정 정보를 바탕으로 컨테이너가 자동으로 연결해주는 것. |
특징 | 개발자들은 단지 빈 설정파일에서 의존관계가 필요하다는 정보를 추가하면 됨. |
객체 레퍼런스를 컨테이너로부터 주입 받아서, 실행 시에 동적으로 의존관계가 생성. | |
컨테이너가 흐름의 주체가 되어 어플리케이션 코드에 의존 관계를 주입. |
DI의 유형
종류 | 요약 | 설명 |
Setter Injection | Setter 메소드를 통한 의존성 주입 | 의존성을 입력받는 Setter 메서드를 만들고 이를 통해 의존성 주입 |
Constructor Injection | 생성자를 통한 의존성 주입 | 필요한 의존성을 포함하는 클래스의 생성자를 만들고 이를 통해 의존성을 주입 |
Method Injection | 일반 메소드를 이용한 의존성 주입 | 의존성을 입력 받는 일반 메서드를 만들고 이를 통해 의존성을 주입 |
Spring DI 컨테이너의 개념
Spring DI 컨테이너가 관리하는 객체를 빈(Bean)이라고 하고, 빈 들을 관리한다는 의미로 컨테이너를 빈 팩토리(Bean Factory)라고 부름.
-> Bean Factory에 여러가지 컨테이너 기능을 추가하여 어플리케이션 컨텍스트(Application Context)라고 부름.
Bean Factory | - Bean을 등록, 생성, 조회, 반환 관리함. - 보통은 BeanFactory를 바로 사용하지 않고, 이를 확장한 Application Context를 사용. - getBean() 메소드가 정의되어 있음. |
Application Context | - Bean을 등록, 생성, 조회, 반환 관리하는 기능은 BeanFactory와 같음 - Spring의 각종 부가 서비스를 추가로 제공 - Spring이 제공하는 ApplicationContext 구현 클래스가 여러 가지 종류가 있음. |
'Java > Spring' 카테고리의 다른 글
사용자 관리 프로젝트 아키텍쳐 (0) | 2017.01.08 |
---|---|
Annotation을 이용한 Bean 등록 (0) | 2017.01.07 |
Bean 의존 관계 설정 방법 (0) | 2017.01.07 |
간단한 POJO 클래스를 통한 DI 이해 (0) | 2017.01.07 |
Spring Framework 개요 (0) | 2017.01.06 |