IoC(Inversion Of Control)

IoC(Inversion Of Control)

제어의 역전

·

1 min read

객체의 라이프 사이클을 개발자가 아닌 스프링 컨테이너가 도맡음

객체 간 결합도를 줄여 가독성 향상, 유지보수 용이

컨테이너(IoC Container)

Bean을 담는 공간

빈 객체의 라이프라이클 관리, 빈 객체 간 의존성을 관리

Bean

재사용 가능한 소프트웨어 컴포넌트

인스턴스화되어 컨테이너에 등록된 객체

Scope

  • Singleton> 기본 스코프. 시작과 종료까지 유지되는 가장 넓은 범위

  • Prototype> 프로토타입 빈의 생성과 의존관계 주입까지만 관여하는 짧은 범위

  • Web

    • request> 웹 요청이 들어오고 나갈때까지 유지됨

    • session> 웹 세션이 생성되고 만료될 때까지 유지됨

    • application> servlet context와 동일 범위로 유지됨

DI

DI(의존성 주입. Dependency Injection)라고도 함

IoC원칙을 구현하기 위해 사용되는 방법

주입 방법

  • constructor

  • setter

  • field

  • method


참고

https://docs.spring.io/spring-framework/reference/core/beans/factory-scopes.html