IOC컨테이너와 빈 (1)

맹기·2021년 3월 16일
0

1. IoC 컨테이너 1부: 스프링 IOC 컨테이너와 빈


1.1 IoC란?

Inversion of Control : 의존 관계 주입(Dependency Injection)이라고도 하며, 사용하는 의존 객체를 직접 만들어 사용하는게 아니라, 주입 받아 사용하는 방법을 말 함.

해당 개념을 예를 들어 정리를 해보면 아래와 같이 정리가 가능합니다.

BookRepository bookRepository = new BookRepository();

위의 코드처럼 직접 만들어서 객체를 사용하는게 아니라,
아래의 코드와 같이 어떠한 장치를 활용하여 주입 받는 방법이라고 합니다. (아래의 경우 생성자를 활용)

public BookService(BookRepository bookRepository) {         
    this.bookRepository = bookRepository;
}

1.2 스프링 IoC 컨테이너

  • BeanFactory.
  • 애플리케이션 컴포넌트의 중앙 저장소.
  • 빈 설정 소스로 부터 빈 정의를 읽어들이고, 빈을 구성하고 제공한다.

1.3 빈

  • 스프링 IoC 컨테이너가 관리 하는 객체
  • 장점
    • 의존성 관리
      • 싱글톤 : 객체를 하나만 만들어 사용
      • 프로토타입 : 매번 다른 객체를 만든다.
    • 라이프사이클 인터페이스

      예시 코드 : 빈이 생성되자 마자 작업을 함

       @PostConstruct
       public void postConstruct() {
       	System.out.println("=========빈 생성 직후 해야할 코드 작성=========");
       }

1.4 ApplicationContext

BeanFactory외에 추가적인 기능을 갖고 있다.

  • BeanFactory를 상속받음
  • 메시지 소스 처리 기능(i18n)
  • 이벤트 발행 기능
  • 리소스 로딩 기능
  • ...

IoC 컨테이너 1부 포스팅을 마치겠습니다~
감사합니다.

0개의 댓글

관련 채용 정보