Posts [개발자 블로그] DispathcerServlet & ContextLoaderListener
Post
Cancel

[개발자 블로그] DispathcerServlet & ContextLoaderListener

DispathcerServlet & ContextLoaderListener

1) DispatcherServlet

  • 해당 애플리케이션으로 들어오는 요청을 모두 처리
    image

  • 사용자 URL 요청 -> DispatcherServlet (url-pattern을 통해 인식)-> HandlerMapping -> Controller(Servlet) -> ViewResolver -> View -> DispatcherServlet -> 사용자

  • DispatcherServlet은 모든 요청을 Servlet으로 보내어 처리하게 되므로 굳이 하지 말아야 할 요청도 보내는 경우가 있습니다. 이런 경우는 다음과 같이 예외 처리
    image

2) ContextLoaderListener

  • DispatcherServlet는 각각의 독립적으로 설정파일을 Load 하고 공유 불가
  • ContextLoaderListener를 사용하게 되면 Load시 여러 설정파일을 Load할 수 있음
  • ContextLoaderListener 와 DispatcherServlet 를 같이 사용할 경우 ContextLoaderListener는 부모 context가 되고 DispatcherServlet는 자식 context가 된다. 자식은 부모의 설정을 사용할 수 있다.
  • ※ 공통적인 부분(공통 빈) 설정은 ContextLoaderListener에 설정 하면 된다.
    image

TIP

image

  • 위와 같은 경우 DispatcherServlet 은 각가 별도의 webapplicationcontext를 생성하지만 두 context 는 독립적이므로 각각의 설정파일에서 생성한 빈을 서로 사용할 수 없다.(공유X)
  • 하지만 ContextLoaderListener를 통해 설정된 빈들은 두 context모두 공유하여 사용할 수 있다.

출처

This post is licensed under CC BY 4.0 by the author.