@RequestParam
-컨트롤러에서 데이터를 인자에 할당하는 대표적인 방법
RequestParam
- url 상에서 데이터 찾음
- <form> 태그를 이용하여 데이터를 입력하고 제출 버튼을 누르면 입력한 데이터들이 url을 통해서 전달
- Json형식으로 데이터를 전달할때는, url은 localhost:8080/receive로 변함이 없고 body에 데이터를 포함하여 전송하기 때문에 @RequestParam 으로는 받을 수 없는 것
@Vaild
- 유효성 검사
@RequestBody, @ResponseBody
@RestController
- @Controller와는 다르게 @RestController는 리턴값에 자동으로 @ResponseBody가 붙게되어 별도 어노테이션을 명시해주지 않아도 HTTP 응답데이터(body)에 자바 객체가 매핑되어 전달 됨
- @Controller인 경우에 바디를 자바객체로 받기 위해서는 @ResponseBody 어노테이션을 반드시 명시해주어야 함.
@RequestBody
- 클라이언트에서 서버로 필요한 데이터를 요청하기 위해 JSON 데이터를 요청 본문에 담아서 서버로 보내면, 서버에서는 @RequestBody 어노테이션을 사용하여 HTTP 요청 본문에 담긴 값들을 자바객체로 변환시켜, 객체에 저장
@RequestBody @Valid Member member
json 형식으로 요청들어온 body를 member에 연결(바인딩)
@RequestBody @Valid CreateMemberRequest reques
엔티티를 파라미터로 사용하지 않고 Dto 사용
json 형식으로 요청들어온 body를 dto에 연결(바인딩)
@ResponseBody
- 서버에서 클라이언트로 응답 데이터를 전송하기 위해 @ResponseBody 어노테이션을 사용하여 자바 객체를 HTTP 응답 본문의 객체로 변환하여 클라이언트로 전송함
전송 계층
Client -> Controller -> Service -> Repository
(객체 직접 x)
대신 Dto 사용
Request, ResponseBody
유효성 검사 valid