Web/Backend

[Spring] @Controller와 @RestController

meizzi 2024. 1. 5. 00:09
728x90
반응형

1. @Controller

  • 용도
    • Model 객체에 데이터를 담고 View 반환
      출처: https://mangkyu.tistory.com/49
    • @ResponseBody 사용하여 JSON 객체 반환
      출처: https://mangkyu.tistory.com/49
  • 특징
    • Spring 2.5 버전 이후
    • 전통적인 Spring MVC의 Controller
    • 일반적으로 객체 반환 시 ResponseEntity에 감싸서 반환
      • 객체 반환을 위해 View 반환할 때는 View Resolver 대신 HttpMessageConverter 동작
        • 반환하는 데이터에 따라 사용되는 Converter 종류
          • 단순 문자열 - StringHttpMessageConverter
          • 객체 - MappingJackson2HttpMessageConverter
        • 동작
          • Handler Adapter와 Controller가 요청을 주고받는 시점
  • Postman 테스트 결과

객체 반환
객체 반환 테스트 - 뷰 반환

 

ModelAndView 반환
ModelAndView 반환 테스트 - 뷰 반환

2. @RestController

  • 용도
    • JSON 객체 반환 
      출처: https://mangkyu.tistory.com/49
  • 특징
    • @Controller + @ResponseBody
    • Spring 4.0 버전 이후
    • RESTful 웹 서비스의 Controller
    • REST API 개발할 때 주로 사용
    • 프론트 연결 없이 백엔드 개발할 때 Postman에서 응답 데이터 확인 가능
  • Postman 테스트 결과 

객체 반환
객체 반환 테스트 - 객체 반환
ModelAndView 반환
ModelAndView 반환 테스트 - 뷰 반환

728x90
반응형

'Web > Backend' 카테고리의 다른 글

[Backend] Multi Profile 설정  (0) 2024.09.11
[Backend] Swagger 설정  (1) 2024.09.11
[Backend] Logback 설정  (1) 2024.09.11
[SpringBoot] sts4 프로젝트 생성  (0) 2024.01.04