Он согласовывает заголовок Accept с зарегистрированными HttpMessageConverter (по умолчанию JSON через Jackson). Запрос типа носителя без зарегистрированного конвертера, способного его создать, возвращает 406 Not Acceptable — добавление такого формата, как XML, — это просто добавление пути к классам, никаких изменений контроллера не требуется.
Пример
@WebMvcTest(OrderController.class)classOrderControllerTest {
@Autowired MockMvc mockMvc;
@MockBean OrderService orderService; // real service NOT loaded - only the web layer is@Testvoidreturns404WhenOrderMissing()throws Exception {
given(orderService.findById(1L)).willThrow(newOrderNotFoundException(1L));
mockMvc.perform(get("/api/orders/1"))
.andExpect(status().isNotFound())
.andExpect(jsonPath("$.code").value("ORDER_NOT_FOUND"));
}
}
Итог
Он согласовывает заголовок Accept с зарегистрированными HttpMessageConverter (по умолчанию JSON через Jackson).
Как Spring MVC решает, какое представление (JSON, XML,...) вернуть … · Sobeso