기억의 DataBase

IoC와 DI 본문

Spring

IoC와 DI

Zester; 2019. 3. 21. 17:53
  • Container란?
Container는 Instance의 LifeCycle을 관리하고, 생성된 Instance에 추가적인 기능을 제공하는 프로그램(Factory)
(Servlet 클래스를 Instance로 Memory에 올려서 관리(생성, 소멸)하는, Tomcat(Was)에 Servlet Container가 존재)

  • IoC(Inversion of Control) - 제어의 역전(생성)
Container가 Code 대신에 Object의 제어권을 가지고 있는 것
ex) Servlet 클래스의 Code는 개발자가 만들지만,
실제로 Memory에 올리고 실행하는 것은 Was가 가지고 있는 Servlet Container(프로그램)

  • DI(Dependency Injection) - 의존성 주입(주입)
각기 다른 Class 사이의 의존관계를 Bean 설정 정보를 바탕으로, Container가 자동으로 연결해주는 것


  • Spring이 제공하는 IoC/DI 컨테이너
BeanFactory : IoC/DI에 대한 기본 기능을 가지고 있습니다.

ApplicationContext : BeanFactory의 모든 기능을 포함하며, 일반적으로 BeanFactory보다 추천됩니다. 트랜잭션처리, AOP등에 대한 처리 가능. BeanPostProcessor, BeanFactoryPostProcessor등을 자동으로 등록하고, 국제화 처리, 어플리케이션 이벤트 등을 처리할 수 있습니다.

BeanPostProcessor : 컨테이너의 기본로직을 오버라이딩하여 인스턴스화 와 의존성 처리 로직 등을 개발자가 원하는 대로 구현 할 수 있도록 합니다.

BeanFactoryPostProcessor : 설정된 메타 데이터를 커스터마이징 할 수 있습니다.

'Spring' 카테고리의 다른 글

Spring MVC  (0) 2019.03.25
Spring JDBC  (0) 2019.03.22
Java Config를 통한 IoC/DI  (0) 2019.03.21
xml을 통한 IoC/DI  (0) 2019.03.21
Spring Framework  (0) 2019.03.21
Comments