스프링 프레임워크(22) IoC / DI

넙데데맨·2022년 6월 15일
0

IoC의 분류

DL(Dependency Lookup)

객체 저장소에서 컨테이너가 제공하는 API를 이용해 객체를 검색해 참조하는 방법
컨테이너 제공 API를 이용하기 때문에 컨테이너 종속성이 증가한다.

DI(Dependency Injection)

클래스 사이에 필요로 하는 의존 관계가 있다면 컨테이너가 자동적으로 연결시켜 준다.

  • 내부에서 new를 사용해 객체 생성 시 두 객체 사이 강한 결합으로 형성
  • 외부에서 객체를 생성 후 주입 시키면 약한 결합으로 형성

종류

Setter Injection - setter 메서드를 이용
Contructor Injection - 생성자 이용
Method Injection - 일반 메서드 이용

Spring DI 컨테이너

빈 : 컨테이너가 관리하는 객체
빈 팩토리 : 빈을 관리한다는 의미로 컨테이너를 뜻함
ApplicationContext : 빈 팩토리에 여러가지 컨테이너 기능을 추가한 것

BeanFactory

-Bean 등록, 생성, 조회

  • getBean() 메소드 정의되어있음

ApplicationContext

  • BeanFactory를 확장해 BeanFactory의 기능을 가짐
  • Spring의 각종 부가 서비스를 추가 제공
  • Spring이 제공하는 ApplicationContext 클래스가 여러 종류가 있다
  • 사실상 DI 컨테이너 역할을 한다고 보면 된다.
profile
차근차근

0개의 댓글