IOC 와 DI 스프링 프레임워크 스프링 수업노트

 

IOC : 제어의 역전

프레임워크가 제공하는 CONTAINER 가 제어권을 가져감

IOC 는 의존관계를 결정한다. 설정한다, 생명주기(LIFECYCLE) 를 해결 하기 위한 디자인패턴

  • 객체의 생성 책임, 의존성 관리
  • POJO 의 생성, 초기화, 서비스, 소멸에 대한 권한을 가짐
  • 개발자들이 직접 POJO 를 생성할 수 있지만 컨테이너에게 맞긴다.

IOC 의 분류

IOC → DL, DI

DI → Setter Injection , Constructor Injection, Method Injection

IOC : Inversion of Control

DL: Dependency Lookup

  • 의존성 검색
  • EJB ( enterprise java beans)
  • SPRING (스프링도 DL 지원한다.
  • DL은 특정 컨테이너에 종속되는 API 를 사용함. DI가 더 많이 씀

DI: Dependency Lookup Injection

  • SPRING
  • picoContainer

https://s3-us-west-2.amazonaws.com/secure.notion-static.com/b6e14abb-3029-40dc-932e-af7060880e8e/11.png

DI의 개념

각 클래스간의 의존관계를 빈 설정(Bean Definition) 정보를 바탕으로 컨테이너가 자동으로 연결해주는 것을 말함

(xml, anotation 방식으로 빈 간의 관계가 있다는 것을 설정)

컨테이너가 설정관계를 읽어서,

DI 의 유형

Setter Injection - Setter 메서드를 이용한 의존성 삽입

: 의존성을 입력받는 setter 메서드를 만들고 이를 통해 의존성을 주입한다.

Constructor Injection - 생성자를 이용한 의존성 삽입

: 필요한 의존성을 포함하는 클래스의 생성자를 만들고 이를 통해 의존성 주입

Method Injection : 일반 메서드를 이용한 의존성 삽입

: 의존성을 입력받는 일반 메서드를 만들고 이를 통해 의조넝 주입

String DI 컨테이너의 개념

Spring DI 컨테이너가 관리하는 객체 : 빈(bean) 이라고 하고 이 빈(bean)들을 관리한다는 의미로 컨테이너를 빈 펙토리(BeanFactory) 라고 부른다.

댓글