ssung_항해일지/항해99_Spring_입문, 숙련, 심화

spring - 10일차

ssungcohol 2023. 2. 14. 01:59

@RequestBody vs @ModelAttribute

 

공통점

 - 클라이언트 츨에서 보낸 데이터를 Java 코드에서 사용할 수 있는 오브젝트로 만들어준다.

 

차이점

  • RequestBody
    • 클라이언트가 보내는HTTP 요청 본문(JSON, XML등)을 Java 객체로 변환
    • HTTP 요청 본문 데이터는 Spring 에서 제공하는 HttpMessageConverter를 통해 타입에 맞는 객체로 변환
    • 객체를 JSON 문자열로 변환한 뒤, 요청에 응답
  • ModelAttribute
    • contentType을 x-www-form-url-encoded로 요청 본문 내용을 Form형식으로 응답

Controller Annotation

 

@Controller

  • Controller 클래스에 작성 (이 어노테이션이 적용된 클래스는 Controller 임을 말함)
  • Model 객체를 만들어 데이터를 담고, View를 찾는 역할
  • HTML형태로 브라우저에 나타남 

@Rest Controller

  • @Controller 와 @ResponseBody 를 하나로 합쳐놓은 어노테이션
  • View 대신 Json 형태의 데이터를 반환
  • 데이터 자체를 응답으로 제공하는 REST API를 개발할 때 주로 사용

@RequestMapping

  • 특정 요청 URL에 대한 HTTP 메소드를 지정해줄 때 사용
  • 속성값 없이 사용하면 모든 HTTP 메소드에 대한 요청을 받을 수 있고, 특정 메소드도 지정 가능
  • Controller 클래스 위에 작성하면 공통 요청 URL을 선언할 수도 있음
728x90

'ssung_항해일지 > 항해99_Spring_입문, 숙련, 심화' 카테고리의 다른 글

spring - 13일차  (0) 2023.02.17
spring - 11일차  (0) 2023.02.15
Spring - 9일차  (0) 2023.02.11
spring - 8일차  (0) 2023.02.11
spring - 7일차 (JPA)  (0) 2023.02.10