본문 바로가기
IT/Java

@RequestPart?

by 성준하이 2024. 4. 22.
반응형

기존에 사용하던 @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

 

멀티파트(Multipart)란?

멀티파트(Multipart)란 HTTP에서 form 을 통해서 파일을 등록해서 전송하는 방법이다. HTTP에 대한 내용은 참고 포스팅 참고 바란다. 멀티파트의 요청은 Content-Type 헤더를 multipart/form-data 값으로 지정을

thenicesj.tistory.com

 

https://thenicesj.tistory.com/298

 

자바 직렬화(Serializable)

자바에서 사용하는 직렬화의 의미는 자바 시스템 내부에서 사용되는 객체 또는 데이터를 외부의 자바 시스템에서도 사용할 수 있도록 바이트(byte) 형태로 데이터 변환하는 기술 시스템적인 면

thenicesj.tistory.com

 

반응형

'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

댓글