Note ≣ | @PathVariable에 설정된 매개변수에는 어떤 데이터 타입이 올 수 있나요?
메서드 안에 설정된 @PathVariable 매개변수의 데이터 타입은 int, long, Date 등 어떤 타입이든 가능합니다. 스프링이 적절한 타입으로 자동 변환해 주기 때문입니다. 타입 변환에 실패한다면 TypeMismatchException 예외가 발생합니다.
따라서 매개변수의 데이터 타입은 URL 내용이 적절히 변환될 수 있는 것으로 사용해야 합니다. 메서드의 매개변수에 int 타입을 사용할 때 반드시 해당 경로 변수의 값은 숫자여야 합니다. 데이터 타입이 일치하지 않는 값이 전송되었을 때 별다른 예외 처리를 하지 않으면 HTTP 400 - Bad Request 응답 코드가 전달될 것입니다.
적용 예제
@GetMapping(value="/books/{id}")
public String myMethod(@PathVariable int id) {
// 구현 생략...
return "book";
}