@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 |