我注意到GraphQL-SPQR至少可以配置几个属性(例如graphql.spqr.gui.enabled=true
)。是否有用于指定使用Gson而不是Jackson进行对象序列化/反序列化的配置?
如果没有配置,是否还有其他方法可以使用GraphQL-SPQR使用Gson而不是Jackson?
注意:我已经在
spring.http.converters.preferred-json-mapper=gson
中使用application.properties
来覆盖一般的spring以使用Gson而不是Jackson,但似乎没有覆盖GraphQL-SPQR的值映射器(默认为杰克逊)。
非常感谢您的帮助:)
答案 0 :(得分: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的映射完全不同。但是我想您已经意识到了这一点,因为您明确希望使用它。