ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Spring] HttpMessageConverter
    Spring 2025. 4. 17. 11:40

     

    minecraft-font

    Spring

     

    🔥 HttpMessageConverter

          🎯 View(화면 표시)를 응답하는 것이 아닌, Rest API(HTTP API)로 JSON, TEXT, XML 등의 데이터를

             응답 Message Body에 직접 입력하는 경우 HttpMessageConverter를 사용한다.

             

             ※ @RestController = @Controller + @ResponseBody

     

    1. SSR → @Controller + View Template → 서버 측에서 화면을 동적으로 그린다.

    2. CSR → @RestController + Data → 클라이언트 측에서 화면을 동적으로 그린다.

    3. 실제로는 두가지 기술이 함께 사용되는 경우가 많다.


    ✅  역활

            HTTP 요청/응답을 Java객체와 변환하는 중간 다리 역활을 함.

     

    ✅  HttpMessageConverter 동작 순서

     

         HTTP응답 메세지 Body에 데이터를 직접 입력 후 반환한다.

         요청 AcceptHeader + Controller 반환 타입     ViewResolver가 아닌 HttMessageConverter가 동작한다.

    ✅ 언제 작동하는가?

     

    상황  설명
    요청 받을때 JSON등  → Java객체(@RequestBody)
    응답 보낼때 Java Json 등         (@ResponBody, RestController)

      우선순위

    Spring은 다양한 HttpMessageConverter를 제공하고 있고 우선순위가 있다. 대상 Class와 MediaType을 체크해서 어떤 Converter를 사용할지 결정한다.

     

     

      대표적인 HttpMessageConverter

      ByteArrayHttpMessage
    Converter
    StringHttpMessage
    Converter
    MappingJackson2HttpMessage
    Converter
    처리 Type byte[] String  Json
    Target byte[] String  Json
    Media Type */* */* application/json
    반환 apllication/octet-stream text/plain application/json

     

     기타

        이외에도 기본적으로 제공되는 다양한 MessageConverter가 존재한다.

        대부분의 경우 위 세가지로 해결이 된다.

    'Spring' 카테고리의 다른 글

    [Spring] HttpMessageConverter(2)  (0) 2025.04.17
    [Spring] ArgumentResolver  (0) 2025.04.17
    [Spring] 트랜잭션  (0) 2025.04.17
    [Spring] 고아 객체  (0) 2025.04.17
    [Spring] 영속성 전이 (Cascade)  (0) 2025.04.17
Designed by Tistory.