SpringBoot #3.3 - WebApplicationContext

텐저린티·2023년 7월 5일
0

데브코스

목록 보기
24/41

WebApplicationContext

  • ApplicationContext 상속한 클래스
  • ServletContext에 접근할 수 있는 권한 추가
    • 여러 서블릿이 공유가 가능한 정보를 ServletContext에 담음
    • ServletContainer가 생성될 때 서블릿 정보를 여기에 담음
      • applicationContext 생성될 때 setAttribute() 를 통해 ServletContext생성
    • 이걸 사용하면 모든 서블릿에 대한 접근이 가능

ContextLoaderListener

  • 루트 ApplicationContext 등록

웹 환경에서 스프링 어플리케이션 동작 방식

  1. 클라이언트 요청
  2. 웹 어플리케이션에서 WebApplicationContext 생성 (ApplicationContext 존재)
  3. DispatcherSevlet이 WebApplicationContext에서 등록된 빈을 조회
  4. DispatcherServlet에서 찾고자 하는 서블릿과 빈을 조합해서 결과 만듬


  • Servlet Application Context에 DispatcherServlet에 필요한 모든 Bean 이 등록
    • Controller 빈 등록
    • Service, Repository 빈 등록 X
  • Root Application Context에서는 모든 서블릿이 필요한 공통 Bean이 등록
    • Service, Repository 빈 등록
  • Root ApplicationContext : Servlet Application Context = 1 : N
  • Servlet Application Context가 하나인 경우에는 Root가 없어도 됨.
    • 이게 모놀리틱 시스템 → 옛날 방식
    • Order, Voucher 처럼 서비스 별로 ServletApplicationContext를 따로두면 모놀리틱하지 않은 시스템
profile
개발하고 말테야

0개의 댓글

관련 채용 정보