스프링 MVC 동작 원리(11) : 스프링 MVC 동작 원리 마무리

de_sj_awa·2021년 6월 27일
0

11. 스프링 MVC 동작 원리 마무리

결국엔 (굉장히 복잡한) 서블릿.
= DispatcherServlet

DispatcherServlet 초기화

  1. 특정 타입에 해당하는 빈을 찾는다.
  2. 없으면 기본 전략을 사용한다. (DispatcherServlet.properties)

스프링 부트 사용하지 않는 스프링 MVC

  • 서블릿 컨네이너(ex, 톰캣)에 등록한 웹 애플리케이션(WAR)에 DispatcherServlet을 등록한다.
    - web.xml에 서블릿 등록
    - 또는 WebApplicationInitializer에 자바 코드로 서블릿 등록 (스프링 3.1+, 서블릿 3.0+)
  • 세부 구성 요소는 빈 설정하기 나름.
public class WebApplication implements WebApplicationInitializer {

    @Override
    public void onStartup(ServletContext servletContext) throws ServletException {
        AnnotationConfigWebApplicationContext context = new AnnotationConfigWebApplicationContext();
        context.register(WebConfig.class);
        context.refresh();

        DispatcherServlet dispatcherServlet = new DispatcherServlet(context);
        ServletRegistration.Dynamic app = servletContext.addServlet("app", dispatcherServlet);
        app.addMapping("/app/*");
    }
}

스프링 부트를 사용하는 스프링 MVC

  • 자바 애플리케이션에 내장 톰캣을 만들고 그 안에 DispatcherServlet을 등록한다.
    - 스프링 부트 자동 설정이 자동으로 해줌.
  • 스프링 부트의 주관에 따라 여러 인터페이스 구현체를 빈으로 등록한다.

External Libraries -> maven : org.springframework.boot:spring-boot-autoconfigure:2.5.1 -> spring-boot-autoconfigure-2.5.1.jar -> META-INF -> spring.factories

스프링 부트가 기본으로 등록한 빈 : WebMvcAutoConfiguration.class

참고

  • 인프런 : 스프링 웹 MVC(백기선)
profile
이것저것 관심많은 개발자.

0개의 댓글