[Spring] IoC & Container

SHINYEJI·2023년 10월 18일
0

Back-End

목록 보기
1/24

📌 Spring에서 IoC

Spring 프레임워크는 IoC방식을 지원한다.

🤔 IoC (Inversion of Control); 제어의 역행

  • 개발자가 객체의 생성과 관리를 담당하지 않고 프레임워크나 컨테이너에게 객체의 생성 및 관리를 위임하는 방식이다.
    IoC의 장점
  • 객체 간의 관계가 느슨하게 연결된다. 즉, 의존성에서 결합도가 낮아진다.

Spring의 Container는 객체의 LifeCycle과 의존성주입(DI)를 통해 IoC를 구현한다.

쉽게 말해, 필요할 때 만들지말고 만들어놓고 필요할 때 가져다 쓴다.

IoC 유형

- DL(Dependency Lookup)

    - getBean()같은 메소드처럼 의존성을 직접 검색하는 방법

- DI(Dependency Injection) - 의존성 주입

  • Spring Container가 직접 의존 구조를 Object에 설정 할 수 있도록 지정해 주는 방식
    • 컨테이너에서 객체를 생성(bean 객체)하여 의존 관계에 있는 다른 객체에 bean객체를 주입
  • Object가 컨네이너의 존재 여부를 알 필요가 없다.

📌 Spring Container

(= IoC Container와 같은말)

Container의 역할

  • 객체의 생성, 사용, 소멸에 해당하는 라이프사이클을 관리
  • Dependency 객체 제공
  • Thread 관리
  • Application에 필요한 환경 제공

Container의 필요성

  • 서비스 객체를 사용하기 위해 Factory 또는 Singleton 패턴을 직접 구현하지 않아도 컨테이너가 대신 해준다.
  • 비즈니스 로직(sql, 치환변수에 값 넣기, Resultset결과를 어디에 담을 것인지 등)외에 부가적인 기능들에 대해서는 독립적으로 관리한다.
  • 서비스 look up이나 Configuration에 대한 일관성을 갖기 위함이다.

0개의 댓글