【问题标题】:How to configure GraphQL SPQR to use Gson instead of Jackson如何配置 GraphQL SPQR 以使用 Gson 而不是 Jackson
【发布时间】:2020-04-15 02:51:33
【问题描述】:

我注意到 GraphQL-SPQR 至少有几个可以配置的属性(例如 graphql.spqr.gui.enabled=true)。是否有指定使用 Gson 而不是 Jackson 进行对象序列化/反序列化的配置?

如果没有配置,是否有其他方法可以使用 Gson 代替 Jackson 进行 GraphQL-SPQR?

注意:我已经在我的application.properties 中使用spring.http.converters.preferred-json-mapper=gson 来覆盖spring 以使用Gson 而不是Jackson,但它似乎没有覆盖GraphQL-SPQR 的值映射器(默认为Jackson)。

非常感谢任何帮助:)

【问题讨论】:

    标签: java jackson gson graphql-spqr graphql-spring-boot


    【解决方案1】:

    您需要做的就是注册一个ValueMapperFactory bean,例如

    @Bean
    public ValueMapperFactory gson() {
        return new GsonValueMapperFactory();
    }
    

    要自定义工厂,请使用构建器而不是构造器:

    @Bean
    public ValueMapperFactory gson(Gson gson) {
        return GsonValueMapperFactory.builder()
                .withPrototype(gson)
                .build();
    }
    

    您可以在here 中找到大多数可定制的 bean。

    我也认为尊重spring.http.converters.preferred-json-mapper 是个好主意。我会在以后的版本中添加它。关注this issue 了解进展。

    请注意,尽管 Gson 映射比 Jackson 的映射简单得多。它的功能少得多,只考虑字段(不是构造函数参数或设置器),并且可能与基于 Jackson 的映射不完全相同。但我想你知道这一点,因为你明确希望使用它。

    【讨论】:

      猜你喜欢
      • 2018-05-05
      • 2020-09-11
      • 1970-01-01
      • 1970-01-01
      • 2017-04-08
      • 1970-01-01
      • 2020-08-19
      • 2021-10-26
      • 2018-12-09
      相关资源
      最近更新 更多