Spring Framework에서는 @ResponseBody와 @RequestBody 어노테이션을 사용하여 HTTP 요청과 응답을 처리할 수 있습니다. 이러한 어노테이션을 사용하면 Spring MVC 컨트롤러에서 데이터를 읽고 쓰는 것이 간단해집니다.
@ResponseBody : 해당 메소드가 HTTP 응답 본문을 반환
@RequestBody : 해당 메소드가 HTTP 요청 본문을 반환
이때 본문에 담기는 데이터 형식 중 가장 대표적인 것은 JSON이다.
@ResponseBody
Spring MVC 컨트롤러에서 @ResponseBody 어노테이션을 사용하면 해당 메소드가 HTTP 응답 본문의 내용을 반환한다는 것을 나타냅니다. 반환된 데이터는 자동으로 HTTP 응답 본문에 직렬화되고, 클라이언트로 전송됩니다.
예를 들어, 다음과 같이 사용할 수 있습니다:
@GetMapping("/hello")
@ResponseBody
public String helloWorld() {
return "Hello World!";
}
위 예제에서는 @ResponseBody 어노테이션을 사용하여 "Hello World!" 문자열을 HTTP 응답 본문으로 반환하고 있습니다.
+)
@ResponseBody를 사용하면...
viewResolver 대신에 HttpMessageConverter 가 동작 기본 문자처리: StringHttpMessageConverter 기본 객체처리: MappingJackson2HttpMessageConverter byte 처리 등등 기타 여러 HttpMessageConverter가 기본으로 등록되어 있음
참고: 클라이언트의 HTTP Accept 해더와 서버의 컨트롤러 반환 타입 정보 둘을 조합해서 HttpMessageConverter 가 선택된다.
@RequestBody
Spring MVC 컨트롤러에서 @RequestBody 어노테이션을 사용하면 해당 메소드가 HTTP 요청 본문의 내용을 읽어들인다는 것을 나타냅니다. 읽어들인 데이터는 자동으로 객체로 변환되고, 메소드의 매개변수로 전달됩니다.
예를 들어, 다음과 같이 사용할 수 있습니다:
@PostMapping("/users")
@ResponseBody
public User createUser(@RequestBody User user) {
// user 객체를 사용하여 새로운 사용자를 생성합니다.
return newUser;
}
위 예제에서는 @RequestBody 어노테이션을 사용하여 HTTP 요청 본문에서 User 객체를 읽어들이고, createUser 메소드의 매개변수로 전달하고 있습니다.
@RestController
마지막으로, Spring MVC 컨트롤러에서 @RestController 어노테이션을 사용하면 @ResponseBody 어노테이션을 모든 메소드에 자동으로 적용할 수 있습니다. 이러한 어노테이션을 사용하면, 간단한 RESTful API를 쉽게 작성할 수 있습니다.
예를 들어, 다음과 같이 사용할 수 있습니다:
@RestController
public class UserController {
@PostMapping("/users")
public User createUser(@RequestBody User user) {
// user 객체를 사용하여 새로운 사용자를 생성합니다.
return newUser;
}
@GetMapping("/users/{userId}")
public User getUser(@PathVariable Long userId) {
// userId에 해당하는 사용자를 검색합니다.
return user;
}
}
위 예제에서는 @RestController 어노테이션을 사용하여 UserController 클래스를 RESTful API 컨트롤러로 만들고 있습니다. createUser 메소드에서는 @RequestBody 어노테이션을 사용하여 HTTP 요청 본문에서 User 객체를 읽어들이고, getUser 메소드에서는 @PathVariable 어노테이션을 사용하여 HTTP 요청 경로에서 userId 값을 가져오고, 반환된 User 객체는 자동으로 JSON 형식으로 직렬화되어 HTTP 응답 본문에 전송됩니다.
요약
Spring Framework에서는 @ResponseBody와 @RequestBody 어노테이션을 사용하여 HTTP 요청과 응답을 처리할 수 있습니다. @ResponseBody 어노테이션은 해당 메소드가 HTTP 응답 본문을 반환한다는 것을 나타내며, @RequestBody 어노테이션은 해당 메소드가 HTTP 요청 본문을 읽어들인다는 것을 나타냅니다. @RestController 어노테이션을 사용하면 간단한 RESTful API를 작성할 수 있습니다.
참고
https://www.inflearn.com/course/스프링-입문-스프링부트/dashboard
'💻dev > 🌱Java+Spring' 카테고리의 다른 글
Java | 인터페이스(Interface)를 사용하는 이유와 예제 (0) | 2023.04.10 |
---|---|
Spring | 인프런 김영한님의 스프링 입문 강의 정리 - Test 편 (0) | 2023.04.07 |
Java+Spring | 자바 빈(Java Beans)과 스프링 빈(Spring Bean)에 대해 알아보기 (0) | 2023.04.06 |
Spring | Java의 프레임워크 Spring 과 Spring Boot를 알아보자! (0) | 2023.04.05 |
IntelliJ | 인텔리제이 맥OS 단축키 모음 (230406 수정) (0) | 2023.04.05 |