DI - ApplicationContex & Bean

이지윤·2022년 4월 3일
0

ApplicationContext와 Bean 정의

스프링 빈

  • 스프링 컨테이너가 관리하는 객체

IOC 컨테이너

  • 스프링 빈의 생성, 관계, 조립, 생명주기를 관리하는 스프링 프레임워크의 핵심
  • 의존관계주입 -> 애플리케이션을 구성하는 컴포넌트들을 관리

스프링 컨테이너 종류

  • BeanFactory
  • ApplicationContext

BeanFactory

  • 빈의 생성, 빈의 의존관계 관리등의 DI의 기본 기능을 제공
  • 빈이 많지 않고 경량 컨테이너로 작업할 때 활용
  • XML 파일로부터 설정 정보를 활용하는 가장 많이 사용되는 클래스

ApplicationContext

  • 일반적인 스프링 컨데이너를 의미
  • BeanFactory 인터페이스를 상속받아 하위 인터페이스로 확장된 기능 제공

WebApplicationContext

  • 웹 애플리케이션을 위한 ApplicationContext
  • 2가지 종류의 WAC

    ContextLoaderListener에 의해 생성되는 WAC

    • DAO, Service 관련 스프링 빈들을 등록
    • 웹 애플리케이션 전체에서 사용할 WAC 객체 생성
    • root-context.xml 파일에 설정

    DispatcherServlet에 의해 생성되는 WAC

    • 컨트롤러와 같은 서블릿 관련 빈 등록
    • 해당 서블릿 마다 사용할 WAC 객체 생성
    • servlet-context.xml 파일에 생성

웹 애플리케이션에서 컨테이너 인스턴스화

  • web.xml에서 ContextLoaderListener, DispatcherServlet를 사용 -> ApplicationContext 생성

Dependency Injection

  • XML, Annotation, JAVA 기반 설정을 통해서 객체 간의 의존 관계를 설정
  • DI 설정 방법
    • XML 기반 설정 : XML 파일을 사용하는<Bean> 요소를 정의
    • Annotation 기반 설정 : @Component 애노테이션이 부여된 클래스를 DI 컨테이너가 Bean으로 자동 등록
    • Java 기반 설정 : 자바 클래스에 @Configuraion, 메서드에 @Bean 사용해 Bean 등록
profile
초보자

0개의 댓글