小编Lyu*_*yux的帖子

在 Spring Webflux 中使用 Gson 而不是 Jackson

我们已经有很多 Spring MVC 项目,它们都使用 gson 而不是 jackson 进行响应体编码。我们的bean类都是基于gson注解编写的。现在我正在设置一个 Spring Webflux 宁静服务器。如果我们可以使用 Spring MVC 项目中的旧 bean 类,将会节省大量工作。

我试过spring.http.converters.preferred-json-mapper=gson财产无济于事。

我试过HttpMessageConverterbean,它包含在 webflux 包中,但它不像在 Spring MVC 项目中那样工作。

我在谷歌上搜索了很多,唯一有用的是实现org.springframework.http.codec.HttpMessageEncoder类并将其设置为WebFluxConfigurer.configureHttpMessageCodecs()方法:

@Configuration
public class WebConfiguration implements WebFluxConfigurer {
    @Override
    public void configureHttpMessageCodecs(ServerCodecConfigurer configurer) {
        configurer.customCodecs().decoder(new GsonHttpMessageDecoder());
        configurer.customCodecs().encoder(new GsonHttpMessageEncoder());
    }

    private static class GsonHttpMessageEncoder implements HttpMessageEncoder {
        ...
    }

    private static class GsonHttpMessageDecoder implements HttpMessageDecoder {
        ...
    }
}
Run Code Online (Sandbox Code Playgroud)

我还没有尝试过,因为它有点复杂。有没有什么简单的方法可以在 Spring Webflux 中用 gson 替换 jackson?

任何帮助表示赞赏。

spring jackson gson spring-boot spring-webflux

6
推荐指数
1
解决办法
881
查看次数

标签 统计

gson ×1

jackson ×1

spring ×1

spring-boot ×1

spring-webflux ×1