[Spring] RequestBody 어노테이션
[Spring] RequestBody 어노테이션
Spring에서 RESTful API 구현시 주로 사용되는 @RequestBody, @ResponseBody 어노테이션의 개념에 대해 알아보자웹 서비스와 REST 방식이 시스템을 구성하는 주요 요소로 자리 잡으면서 웹 시스템간에 XML이나 JSON드의 형식으로 데이터를 주고 받는 경우가 증가하고 있다.
이에 따라 Spring MVC도 클라이언트에서 전송한 XML 데이터나 JSON 또는 기타 데이터를 컨트롤러에서 DOM 객체나 자바 객체로 변환해서 받을 수 있는 기능(수신)을 제공하고 있다.
비슷하게 자바 객체를 XML이나 JSON또는 기타 형식으로 변환해서 전송할 수 있는 기능을 제공하고 있다.
@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를 적어줘야 함)
그 외 자주 사용되는 @ReqeustMapping 속성
@Consumes : 수신 하고자 하는 데이터 포맷을 정의
@Produces : 출력하고자 하는 데이터 포맷을 정의
출처
@ResponseBody를 사용하지 않은 이유는 @RestController를 사용하였기 때문
@Controller와는 다르게 @RestController는 리턴값에 자동으로 @ResponseBody가 붙게 되어 HTTP 응답데이터(body)에 자바 객체가 매핑되어 전달된다.
(@Controller인 경우에는 @ResponseBody를 적어줘야 함)
그 외 자주 사용되는 @ReqeustMapping 속성
@Consumes : 수신 하고자 하는 데이터 포맷을 정의
@Produces : 출력하고자 하는 데이터 포맷을 정의
출처
댓글
댓글 쓰기