개발/Spring

[Spring] Spring MVC 정리

TutleKing 2022. 12. 23. 19:43
  • servlet 에서 모든 클래스가 servlet일 필요가 없어서 Front Controller 패턴을 사용하여 프로그램으로 들어오는 요청 및 응답을 하나의 servlet이 처리를 하였다. 
    • Spring MVC 에서의 Front Controller : DispatcherServlet

 

ApplicationContext 와 WebApplicationContext의 차이 

  • WebApplicationContext : ApplicationContext + ServletContext

 

설정 방법

  • WebConfig.java 를 생성 
    • Controller만 따로 web요청을 처리하기 위해 따로 @ComponenetScan 해야함 (spring boot에서는 x)
  • @Configuration, @EnableWebMvc 을 선언 
  • WebMvcConfigurer 인터페이스를 구현 
    • add~~, extend~~ : 새로운 빈이나 오브젝트를 추가하는 것
    • configure~~ : 새로 설정한 빈이나 오브젝트를 Overriding 하여 덮어씌어버림 
  • WebAppInitializer 클래스를 선언해 AbstractAnnotationConfigDispatcherServletInitializer 확장 
    • Spring boot에서는 x 

 

Controller 

  • @Controller 
    • Stereo type bean 중 하나로 선언시, 스프링 빈으로 등록됨
    • ModelAndView를 통하여 html, jsp와 같은 view에 model을 사용하여 렌더링함 
      • ViewResolver가 동작하여 처리 
  • @RestController
    • @RestController = @Controller + @ResponseBody
    • @ResponseBody 어노테이션을 통해 HttpMessageConverter가 동작하도록 표시함 
      • 자바 객체를 JSON으로 마셜링 및 언마셜링하는 역할 등등 
  •  

 

반응형