Spring에서의 @RequestBody와 @ResponseBody의 개념


Spring

Overview

Spring에서 RESTful API를 구현할 때 주로 사용되는 @RequestBody와 @ResponseBody Annotation의 개념에 대해 알아본다.


개념

@RequestBody : HTTP 요청의 body 내용을 자바 객체로 매핑
@ResponseBody : 자바 객체를 HTTP 요청의 body 내용으로 매핑


예제

@RestController
public class LoginWebController 
{
    // HTTP 요청의 내용을 Member 객체에 매핑하기위해 @RequestBody 설정
    @RequestMapping(value="/member/login", method = RequestMethod.POST)
    public MemberResultDto login(@RequestBody Member member) 
    {
        MemberResultDto memberResultDto = memberService.login(member); 
        return memberResultDto;
    }
}

위의 예제 소스에서는 HTTP 요청의 body안에 Member 데이터를 파라미터로 받기위해, @RequestBody를 사용했다.

@ResponseBody를 사용하지 않은 이유는 @RestController를 사용하였기 때문이다.

@Controller와는 다르게 @RestController는 리턴값에 자동으로 @ResponseBody를 붙게되어 HTTP 응답데이터(body)에 자바 객체가 매핑되어 전달된다. (@Controller인 경우에는 @ResponseBody를 적어줘야 한다.)

그 외 자주 사용되는 @RequestMapping 속성

  • @Consumes : 수신 하고자하는 데이터 포맷을 정의
  • @Produces : 출력하고자 하는 데이터 포맷을 정의

참고 자료






© 2019. by RaP0d

Powered by aiden