Springboot MVC 파헤치기(7) @RequestBody, @ResponseBody
Controller에서 사용되는 @RequestBody와 @ResponseBody에 대해서 알아보겠습니다.
@RequestBody: HTTP Body에 담겨온 정보를 JSON 형식으로 변환하여 객체와 맵핑해주는 역할을 합니다.
@ResponseBody: HTTP Body에 정보를 전달하기 전에 객체를 JSON 형식으로 변환하여 보내주는 역할을 합니다.
@RequestBody를 사용한 코드를 보겠습니다.
{
"size": 10,
"description": "hi"
}
위와 같은 JSON 형식의 데이터를 서버에게 전송했을 때 @RequestBody를 붙인 객체와 맵핑을 진행합니다.
(단 JSON과 맵핑되기 위해선 필드명이 같아야 합니다. 다르면 맵핑되지 않습니다.)
@GetMapping("/requestBody")
public String requestBody(@RequestBody Test test) {
return test.getSize()+" "+test.getDescription();
}
@Data
@NoArgsConstructor
@AllArgsConstructor
public static class Test{
int size;
String description;
}
@ResponseBody를 사용한 코드를 보겠습니다.
{
"size": 10,
"description": "hi"
}
위와 같은 데이터를 보내기 위해서는 String형태로 Body에 담아서 보내야 합니다. 하지만 Method단 혹은 Class단에 @ResponseBody를 붙이면 객체를 보내면 변환해서 보내줍니다.
(마찬가지로 클라이언트단에서 정의된 변수명이 같아야 합니다.)
// Method단 @ResponseBody 적용
@Controller
public class ParentController {
@GetMapping("/responseBody")
@ResponseBody
public Test responseBody() {
Test test = new Test(10, "hi");
return test;
}
@Data
@NoArgsConstructor
@AllArgsConstructor
public static class Test{
int size;
String description;
}
}
// class단 @ResponseBody적용
@ResponseController // @ResponseBody + @Controller로서 Controller의 모든 Method에 @ResponseBody가 적용됩니다.
public class ParentController {
@GetMapping("/responseBody")
public Test responseBody() {
Test test = new Test(10, "hi");
return test;
}
@Data
@NoArgsConstructor
@AllArgsConstructor
public static class Test{
int size;
String description;
}
}
지금까지 @ResponseBody와 @RequestBody를 알아봤습니다. 지금까지 SpringBoot MVC 파헤치기 3~7까지 MVC에서 사용하는 어노테이션들에 대해서 알아봤습니다. 다음은 알아본 어노테이션들이 어떻게 작동하는지 알아보겠습니다. 감사합니다.
'SpringBoot > spring mvc' 카테고리의 다른 글
Springboot MVC 파헤치기(8) @ModelAttribute, @RequestParam, @PathVariable @ResponseBody @RequestBody 동작 과정 (0) | 2022.03.15 |
---|---|
Springboot MVC 파헤치기(5) @RequestParam (0) | 2022.03.15 |
Springboot MVC 파헤치기(6) @ModelAttribute (0) | 2022.03.14 |
Springboot MVC 파헤치기(4) @PathVarialbe (0) | 2022.03.02 |
Springboot MVC 파헤치기(3) @RequstMapping (0) | 2022.03.02 |
댓글
이 글 공유하기
다른 글
-
Springboot MVC 파헤치기(8) @ModelAttribute, @RequestParam, @PathVariable @ResponseBody @RequestBody 동작 과정
Springboot MVC 파헤치기(8) @ModelAttribute, @RequestParam, @PathVariable @ResponseBody @RequestBody 동작 과정
2022.03.15 -
Springboot MVC 파헤치기(5) @RequestParam
Springboot MVC 파헤치기(5) @RequestParam
2022.03.15 -
Springboot MVC 파헤치기(6) @ModelAttribute
Springboot MVC 파헤치기(6) @ModelAttribute
2022.03.14 -
Springboot MVC 파헤치기(4) @PathVarialbe
Springboot MVC 파헤치기(4) @PathVarialbe
2022.03.02