@ResponseBody와 @RequestBody

BS_Lee·2023년 10월 19일
0

Spring 교육일지

목록 보기
3/3

두 어노테이션은 HTTP의 요청과 응답 데이터에 대한 처리를 해주는 어노테이션이다. 객체를 응답과 요청을 하기 위해서는 body를 이용하여 정보를 주고 받는다. 이 때 body는 JSON파일을 이용한다.

@ResponseBody

  • 서버 ← 클라이언트로 객체를 보낼 때 사용한다.
  • 객체로 보내게 되면 JSON파일로 보내진다.
@Controller
class BookController{
	@GetMapping("/Booklist")
	@ResponseBody
	public Book sendBookList() {
			//Book bean 객체를 생성
			Book bean = new Book();
			//bean을 setter로 값을 삽입.
			bean.setBname("오라클 데이터베이스개론");
			bean.setPrice(13500);
			bean.setPublish("한빛미디어");
			//객체를 리턴. 객체 리턴시에는 JSON형태로 반환이 됨.
			return bean;
	}
}

@RequestBody

  • 서버 → 클라이언트로 객체를 받을 때 사용한다.
  • JSON파일을 객체 형태로 가져오는 것을 말한다.
//Book 객체
@Getter @Setter //롬복 라이브러리 사용하여 setter와 getter선언
public class Book{
		//Book 클래스 변수
		private String bname;
		private int price;
		private String publish;
}
@Controller //컨트롤러로 선언
class BookController{
	@PostMapping("/Booklist") //Post로 받음.
	public String getBookList(@RequestBody Book vo) throws Exception {
			//Spring에서 알아서 JSON key값과 Book의 변수들과 매핑해주기 때문에
			//따로 손댈 곳이 없음.
			System.out.println("bname : " + vo.bname);
	    System.out.println("price : " + vo.price);
	    System.out.println("publish : " + vo.publish);

			return "book/bookList2";
	}
}

새롭게 알게된 점?

  • PostMapping을 사용하는 이유는 JSON, XML파일을 받기 위함이 제일 큰거같음.
  • @RequestBody 어노테이션은 주로 POST 요청과 함께 사용되지만, PUT, PATCH, DELETE 등의 다른 HTTP 메서드와도 함께 사용될 수 있음.
  • @RestController를 적으면 @ResponseBody가 포함되어있어서 안적어줘도 됨.
profile
설명이 가능할 때까지 공부하기.

0개의 댓글