java - 如何配置 GraphQL SPQR 以使用 Gson 而不是 Jackson
问题描述
我注意到 GraphQL-SPQR 至少有几个可以配置的属性(例如graphql.spqr.gui.enabled=true
)。是否有指定使用 Gson 而不是 Jackson 进行对象序列化/反序列化的配置?
如果没有配置,是否有其他方法可以使用 Gson 而不是 Jackson 进行 GraphQL-SPQR?
注意:我已经
spring.http.converters.preferred-json-mapper=gson
在我的application.properties
, 中使用来覆盖 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.preferred-json-mapper
是一个好主意。我会在以后的版本中添加它。关注此问题以取得进展。
请注意,尽管 Gson 映射比 Jackson 的映射简单得多。它的功能要少得多,只考虑字段(不是构造函数参数或设置器),并且可能不会与基于 Jackson 的映射完全相同。但我想您已经意识到这一点,因为您明确希望使用它。
推荐阅读
- javascript - Manage Multiple Audio Sources in React
- pgadmin-4 - How to start pgAdmin 4 v3
- vim - vim script throw E488: Trailing Characters
- php - Cakephp 3.4 总是将主键保存为 NULL
- c# - How to use Linq to combine strings and lists?
- firebase - Firebase security rules for admin read only even though they're set to false
- html - 引导网格没有正确包装?
- powershell - Powershell 变量未用作变量
- compression - Are Linear Quadtrees the most efficient way to store grid division data
- javascript - 未捕获的 ReferenceError:未定义 y (var)