java - 如何自定义 SpringWebFlux WebClient xml+rss JAXB 反序列化?
问题描述
查看 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作为 webclient 的解码器来使 spring boot 控制器和客户端实现一致?
解决方案
我的疯狂猜测是包中的Jaxb2XmlDecoder
和Jaxb2XmlEncoder
类org.springframework.http.codec.xml
:
ExchangeStrategies.builder()
.codecs(configurer -> {
configurer.defaultCodecs().jaxb2Decoder(new Jaxb2XmlDecoder());
configurer.defaultCodecs().jaxb2Encoder(new Jaxb2XmlEncoder());
})
.build();
推荐阅读
- java - 如何在android中获取和设置简单的数学函数?
- c - 按位运算:需要创建一个大整数,但只能声明一个 8bit 整数
- typescript - 是什么导致 VS 不允许我使用 TypeScript 扩展内置类型
- azure-sql-database - Azure 虚拟 VM 中的 SSRS 是否支持将报表服务器数据库作为 Azure SQL 数据库和/或 Azure SQL 托管实例?
- android - 如何在android中创建具有相同大小按钮的键盘
- sql - 使用 SQL 查询导入具有重复列名的 CSV
- python - Python:将字母等级转换为其相应的整数值
- python - 实时获取 shell 输出并将所有输出存储在一个变量中
- angular - 如何使用时刻将时间四舍五入到最近的一刻钟
- reactjs - React 如何解决内存泄漏