개발일지/SPRING

[Spring] IoC & Container (BeanFactory, ApplicationContext) 개념

양쏘쏘 2023. 10. 22. 19:30
728x90
반응형

 

Spring IoC (Inversion of control)

IoC 설명

1. DL (Dependency LookUp)

- 컨테이너lookup context를 통해서 필요한 자원이나 객체를 얻음

- 캐스팅과 예외처리가 필요

 

2. DI (Dependency Injection)

- 객체에 lookup를 사용하는 것이 아닌 컨테이너가 직접 의존 구조를 Object에 설정해줌

- 객체가 컨테이너의 존재를 알 필요가 없음

 

 

Container

- 객체 생성, 사용, 소멸에 해당하는 라이프사이클을 담당함

- 라이프 사이클 관리, Dependecy 객체 제공, Thread 관리 등의 기능

- 비즈니스 로직 외 부가기능을 독립적으로 관리하기 위해 필요함

- 서비스 look up이나 Configuration에 대한 일관성을 갖게 해줌

 

1. IoC Container

- 오브젝트의 생성, 관계설정, 사용, 제거 등 작업을 독립된 컨테이너가 담당, 제어권을 가짐

- BeanFactory, ApplicationContext가 존재

 

2. Spring DI Container

BeanFactory&ApplicationContext

 

1) BeanFactory

- Bean 등록, 생성, 조회, 반환 관리(생명주기 관리)

- getBean() method가 정의되어 있음

 

2) ApplicationContext

- BeanFactory의 기능에 스프링의 부가 기능을 가짐

 

IoC의 개념

- 객체 생성을 Container에게 위임하여 처리함 -> 객체 간의 결합도를 떨어트릴 수 있음

- 컨테이너를 사용하면 실행시점(Runtime) 시에 클래스 간의 관계가 형성됨

 

728x90