반응형
기존에 사용하던 @RequestParam은 key, value의 form에 사용되는 반면
@RequestPart는 더 복잡한 데이터(Part)들을 다루는 multipart/form-data에 적절하며 파일 추출때 유용하게 사용하는 어노테이션이다.
해당 annotation을 이해하기 위해서는 multipart 에 대한 이해가 있어야한다.
자세한 내용은 아래 참고 포스팅 참고 바란다.
아래 예제와 처럼 사용을 할 경우 multipart에 대한 값을 받을 수 있다.
..이상 생략 @PostMapping("/test") public void testMultipart(@RequestPart MultiTest test, @RequestPart(required = false) List<MultipartFile> files) throws Exception { System.out.println("test = " + test); System.out.println("files = " + files); } ..이하 생략 |
Baeldung 사이트에서는 이와같이 소개하고 있다.
https://www.baeldung.com/sprint-boot-multipart-requests
만약 파일이 받아지는것이 아니라면 일반 RequestBody랑 동일하게 작동을 한다.
즉 정리하면
HTTP request body에 multipart/form-data 가 포함되어 있는 경우에 사용하는 어노테이션.
MultipartFile이 포함되어 있는 경우 MultipartResolver가 동작하여 역직렬화.
만약 MultipartFile이 포함되어있지 않다면, @RequestBody와 마찬가지로 동작.
참고 포스팅
https://thenicesj.tistory.com/908
https://thenicesj.tistory.com/298
반응형
'IT > Java' 카테고리의 다른 글
openfeign에서 header에 값 추가 (21) | 2024.04.24 |
---|---|
IncorrectResultSizeDataAccessException (23) | 2024.04.23 |
File To MultipartFile / MultipartFile To File (29) | 2024.04.21 |
멀티파트(Multipart)란? (19) | 2024.04.20 |
Entity에 AutoIncrement 컬럼 설정 (23) | 2024.04.19 |
댓글