-SKplanet Tacademy의 스프링 프레임워크 강의를 듣고 정리한 내용입니다-
IoC(제어권 역전)
- 객체의 생성, 생명주기의 관리까지 모든 객체에 대한 제어권이 바뀌었다는 것을 의미(제어권은 F/W Container가 가지고 있음)
- 컴포넌트 의존관계 결정, 설정 및 생명주기를 해결하기 위한 디자인 패턴
IoC 컨테이너
- 객체에 대한 생성 및 생명주기를 관리할 수 있는 기능을 제공하고 있다.
- POJO에 대한 권한
IoC 의 분류
- DL(의존성 검색): Dependency Lookup: 저장소에 저장되어 있는 Bean에 접근하기 위해 컨테이너가 제공하는 API를 이용해서 Bean을 Lookup 하는 것
- DI(의존성 주입): Dependency Injection
스프링은 DI, DL 둘 다 지원하지만 DL 사용시 컨테이너 종속성이 증가하기 때문에 주로 DI를 사용한다.
DI
- 각 클래스 간의 의존관계를 빈 설정(XML, 어노테이션) 정보를 바탕으로 컨테이너가 자동으로 연결해주는 것
- 개발자들은 빈 설정파일에서 의존관계가 필요하다는 정보를 추가하면 된다.
- 객체 레퍼런스를 컨테이너로부터 주입 받아서, 실행 시에 동적으로 의존관계가 생성된다.
- 컨테이너가 흐름의 주체가 되어 애플리케이션 코드에 의존관계를 주입해 주는 것이다.
<장점>
- 코드가 단순해진다.
- 컴포넌트 간의 결함도가 제거된다.
DI의 유형
- Setter Injection : Setter 메서드를 이용한 의존성 삽입
- Constructor Injection : 클래스 생성자를 이용한 의존성 삽입
- Method Injection : 일반 메서드를 이용한 의존성 삽입
DI를 이용한 클래스 호출방식
Spring DI컨테이너
- Spring DI 컨테이너가 관리하는 객체를 빈(bean)이라고 하고, 이 빈들을 관리한다는 의미로 컨테이너를 빈 팩토리라고 부른다.
- ApplicationContext: BeanFactory을 확장한 것
BeanFactory와 ApplicationContext
'웹 > Spring' 카테고리의 다른 글
[Spring]Spring Framework Basic Framework 개념_어노테이션 | T아카데미 (0) | 2021.05.25 |
---|---|
[Spring]JUnit_java.lang.Exception: No runnable methods (0) | 2021.05.18 |
[Spring]Spring Framework Basic Framework 개념 | T아카데미 (0) | 2021.05.18 |
[Spring]Spring Framework Basic Framework 개념 | T아카데미 (0) | 2021.05.17 |
[Spring]_Whitelabel Error Page (0) | 2021.04.30 |