SPRING

@RequestBody는 왜 Servlet이나 Spring Filter에서 사용할 수 없을까?

boudle 2025. 5. 19. 15:46

Spring MVC에서는 @RequestBody를 사용하면 요청 바디(JSON 등)를 자동으로 Java 객체에 매핑해주는 아주 편리한 기능을 제공합니다.
하지만 Servlet, Filter, 또는 Spring Security Filter 같은 컨트롤러 이전 단계에서는 이 기능을 쓸 수 없습니다.

 

먼저, @RequestBody는 어떤 역할을 할까?

 

하지만 Filter나 Servlet은 DispatcherServlet보다 먼저 동작함

Filter는 HTTP 요청이 Spring MVC에 전달되기 전에 실행됩니다..

 

따라서 Filter에서는:

 

  • @RequestBody가 작동할 수 있는 구조 자체가 아님
  • 요청 바디는 아직 Spring에 의해 파싱되지 않았음
  • 직접 request.getInputStream()으로 읽어야만 가능함