看看Spring webflux客户端的json配置示例:
ExchangeStrategies strategies = ExchangeStrategies
.builder()
.codecs(clientDefaultCodecsConfigurer -> {
//how to do the same but xml?
clientDefaultCodecsConfigurer.defaultCodecs().jackson2JsonEncoder(new Jackson2JsonEncoder(new ObjectMapper(), MediaType.APPLICATION_JSON));
clientDefaultCodecsConfigurer.defaultCodecs().jackson2JsonDecoder(new Jackson2JsonDecoder(new ObjectMapper(), MediaType.APPLICATION_JSON));
}).build();
WebClient webClient = WebClient.builder().exchangeStrategies(strategies).build();
与此相同的问题,但对于 jaxb xml 序列化。是否有 JAXB 和 xml 的解码器实现?是否可以使用 HttpMessageConverter 作为 Web 客户端的解码器,以使 spring 启动控制器和客户端实现保持一致?
我的疯狂猜测是org.springframework.http.codec.xml
包中的Jaxb2XmlDecoder
和Jaxb2XmlEncoder
类:
ExchangeStrategies.builder()
.codecs(configurer -> {
configurer.defaultCodecs().jaxb2Decoder(new Jaxb2XmlDecoder());
configurer.defaultCodecs().jaxb2Encoder(new Jaxb2XmlEncoder());
})
.build();