: 클라이언트가 보낸 요청 파라미터를 컨트롤러 메서드의 매개변수에 바인딩
주로 Get방식에서 사용 (쿼리 스트링)
@GetMapping("/members")
public String getMember(@RequestParam String memberId) {
...
}
: 클라이언트가 보낸 JSON 형태의 HTTP 바디의 내용을 Java 객체로 변환할 때 사용
주고 POST 방식에서 사용 (GET, DELETE 방식에서는 사용 불가)
@PostMapping("/members")
public Member createMember(@RequestBody Member member) {
...
}
: URL 경로에 변수를 넣어 동적으로 URL을 처리해주는 어노테이션
@GetMapping("/members/{memberId}")
public Member getMember(@PathVariable String memberId) {
...
}
memberId 가 url로 들어간다
: 클라이언트가 보낸 요청의 유효성 검사를 위한 어노테이션으로
DTO 클래스에 설정된 제약 조건(@NotNull, @Min, @Max 등)을 확인해준다.
@PostMapping("/members")
public Member createMember(@RequestBody @Valid Member member) {
...
}
: 위의 @Valid 유효성 검사에서 오류가 발생할 경우 오류 정보를 가져올 수 있다.
hasErrors() 메서드를 통해 오류가 발생하는지 확인할 수 있다.
@PostMapping("/members")
public String createMember(@RequestBody @Valid Member member, BindingResult bindingResult) {
if (bindingResult.hasErrors()) {
}
}
요약하면,
@RequestParamm url에 요청 파라미터를 바인딩
@RequestBody Java 객체로 변환
@PathVariable URL 경로에 변수를 넣어 동적으로 처리
@Valid DTO 클래스 유효성 검사 BindingResult로 오류정보 가져오기
헷갈렸던 개념이 정리되었다.