Posts Spring Web MVC에서 자주 쓰는 어노테이션 개념 정리
Post
Cancel

Spring Web MVC에서 자주 쓰는 어노테이션 개념 정리

공부 배경

  • Spring Web MVC를 사용하게 되면 수 많은 어노테이션들을 이용해 자동으로 기능을 구성시키는 경우가 많은데,,, 생각보다 동작 원리나 개념을 모르고 쓰는 경우가 있다.

  • 점진적으로 하나씩 살펴보려고 합니다.


@RequestBody and @ResponseBody

  • HTTP 요청 및 응답의 본문을 Java 클래스 개체로 변환하는 데 사용
  • HTTP message converters를 이용
    • 단순히 HTTP 요청 및 응답 본문에는 Java 객체의 형태(있는 그대로)로 포함될 수 없다
    • JSON,XML 또는 다른 형식의 데이터(MIME)만 가능
    • 결국 HTTP 요청 및 응답의 본문을 Java 클래스 개체로 변환하는 데 사용의 역할을 수행하는 변환기이다
  • Spring FrameWork가 HTTP Message Converters를 선택하는 방법
    • @RequestBody의 Converter는 HTTP 프로토콜의 헤더 Content-Type을 보고 결정

      1
      2
      
      If the Content-Type is application/json , then it will select a JSON to Java Object converter.
      If the Content-Type is application/xml , then it will select a XML to Java Object converter.
      
    • @ResponseBody의 Converter는 HTTP 프로토콜의 헤더 Accept을 보고 결정

      1
      2
      
      If the Accept is application/json , then it will select a Java Object to JSON converter.
      If the Accept is application/xml ,  then it will select a Java Object to XML converter.
      
    • XML 타입을 변환하기 위해서는 아래 의존성이 있는지 확인

    1
    2
    3
    4
    
    <dependency>
      <groupId>com.fasterxml.jackson.dataformat</groupId>
      <artifactId>jackson-dataformat-xml</artifactId>
    </dependency>
    
  • 참고문헌
    • https://springbootdev.com/2017/04/12/spring-mvc-what-is-requestbody-and-responsebody/
This post is licensed under CC BY 4.0 by the author.