티스토리 뷰

반응형

@EnableWebMvc

애노테이션 기반 스프링 MVC를 사용할 때 편리한 웹 MVC 기본 설정

@Configuration
@ComponentScan
@EnableWebMvc
public class WebConfig {
}

 

 

DispatcherServlet의 기본적인 전략과 @EnableWebMvc 사용 시 handlerMapping, handlerAdapter, viewResolver를 확인

 

DispatcherServlet 기본적인 전략

  • handlerMappings
    1. BeanNameUrlHandlerMapping(url 기반으로 매핑 처리)
      • order = 매우 낮은 우선 순위
    2. RequestMappingHandlerMapping
      • interceptors : size = 0;
      • order = 매우 낮은 우선 순위
  • handlerAdapters
    1. HttpRequestHandlerAdapter
    2. SimpleControllerHandlerAdapter
    3. RequestMappingHandlerAdapter
      • messageConvertes : size = 4;
      • order = 매우 낮은 우선 순위
  • 우선 순위가 모두 동일, 등록되어 있는 순으로 우선순위 다른 듯

 

 

@EnableWebMvc

@Configuration
@ComponentScan
@EnableWebMvc
public class WebConfig {
}

//WebApplication
@Override
public void onStartup(ServletContext servletContext) throws ServletException {
  AnnotationConfigWebApplicationContext context = new AnnotationConfigWebApplicationContext();

  //@EnableWebMvc를 사용하기 위해선 DispatcherServlet이 사용하는 애플리케이션 컨텍스트의 서블릿 컨텍스트가 설정 되어야 함.
  context.setServletContext(servletContext);

  DispatcherServlet dispatcherServlet = new DispatcherServlet(context);
  ServletRegistration.Dynamic app = servletContext.addServlet("app", dispatcherServlet);
  app.addMapping("/app/*");
}
  • handlerMappings
    1. RequestMappingHandlerMapping(1순위)
      • order = 1
      • interceptors : size = 2;
    2. BeanNameUrlHandlerMapping
      • order = 2
  • handlerAdapters
    1. RequestMappingHandlerAdapter(1순위)
      • messageConvertes : size = 6;
    2. HttpRequestHandlerAdapter
    3. SimpleControllerHandlerAdapter
  • @EnabelWebMvc를 사용할 시 RequestMappingHandlerMapping과 RequestMappingHandlerAdapter가 1순위로 바라보기 때문엔 애노테이션 기반의 HandlerMapping을 할 시 성능적으로 우수할 것이다.
반응형
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함