Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/350.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何将GraphQL SPQR配置为使用Gson而不是Jackson_Java_Jackson_Gson_Graphql Spqr_Graphql Spring Boot - Fatal编程技术网

Java 如何将GraphQL SPQR配置为使用Gson而不是Jackson

Java 如何将GraphQL SPQR配置为使用Gson而不是Jackson,java,jackson,gson,graphql-spqr,graphql-spring-boot,Java,Jackson,Gson,Graphql Spqr,Graphql Spring Boot,我注意到GraphQL SPQR至少有几个属性可以配置(例如GraphQL.SPQR.gui.enabled=true)。是否有用于指定使用Gson而不是Jackson进行对象序列化/反序列化的配置 如果没有配置,是否有其他方法可以在GraphQL SPQR中使用Gson而不是Jackson 注意:我已经在我的应用程序.properties中使用了spring.http.converters.preferred json mapper=gson,来覆盖spring以使用gson而不是Jackso

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

如果没有配置,是否有其他方法可以在GraphQL SPQR中使用Gson而不是Jackson

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


非常感谢您的帮助:)

您只需注册一个
ValueMapperFactory
bean即可

@Bean
public ValueMapperFactory gson() {
    return new GsonValueMapperFactory();
}
要自定义工厂,请使用生成器而不是构造函数:

@Bean
public ValueMapperFactory gson(Gson gson) {
    return GsonValueMapperFactory.builder()
            .withPrototype(gson)
            .build();
}
您可以找到列出的大多数可定制bean

我还认为尊重
spring.http.converters.preferredJSON映射器是个好主意。我将在以后的版本中添加这一点。跟随进步

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