SPRING/스프링 MVC

HTTP 메시지 컨버터 : 개요

JUMP개발자 2021. 6. 18. 11:09

HTTP 메시지 컨버터 

- 요청 본문에서 메시지를 읽어들이거나(@RequestBody), 응답 본문에 메시지를 작성할 때(@ResponseBody) 사용한다. 

 

@RestController
public class SampleController {

    @GetMapping("/message")
    public String message(@RequestBody String body) {
        return body;
    }
}

 

기본 HTTP 메시지 컨버터

 

- 바이트 배열 컨버터 

- 문자열 컨버터 

- Resource 컨버터 

- Form 컨버터 (폼 데이터 to/from MultiValueMap<String, String>) 

- (JAXB2 컨버터) 

- (Jackson2 컨버터) 

- (Jackson 컨버터) 

- (Gson 컨버터) 

- (Atom 컨버터) 

- (RSS 컨버터) 

 

컨버터 설정 방식

- 기본으로 등록해주는 컨버터에 새로운 컨버터 추가하기: extendMessageConverters 

- 기본으로 등록해주는 컨버터는 다 무시하고 새로 컨버터 설정하기: configureMessageConverters

- 의존성 추가로 컨버터 등록하기 (대부분 이방식이고, 스프링MVC/스프링부트 공통적으로 사용 가능)

 메이븐 또는 그래들 설정에 의존성을 추가하면 그에 따른 컨버터가 자동으로 등록 된다.                   WebMvcConfigurationSupport

 

 

테스트

@RunWith(SpringRunner.class)
@SpringBootTest
@AutoConfigureMockMvc
public class SampleControllerTest {

    @Autowired
    MockMvc mockMvc;
    
    @Test
    public void stringMessage() throws Exception {
        this.mockMvc.perform(get("/message")
                .content("hello"))
                .andDo(print())
                .andExpect(status().isOk())
                .andExpect(content().string("hello"));
    }
}