gpt4 book ai didi

spring-boot - 强制 Spring-Boot 使用 Gson 而不是 Jackson

转载 作者:行者123 更新时间:2023-12-02 18:47:12 25 4
gpt4 key购买 nike

Spring-Boot 1.4.2 引用声明:

spring.http.converters.preferred-json-mapper=jackson # Preferred JSON mapper to use for HTTP message conversion. Set to "gson" to force the use of Gson

我们做到了。

  • 我们为preferred-json-mapper设置gson。
  • 我们已添加 Gson 作为我们项目的依赖项。

但 jackson 仍然被使用。

最后,在排除 Maven 中向 Jackson 指出的所有传递依赖项后,我们设法强制 Spring-Boot 使用 Gson。

现在的问题是。这是强制 Spring-Boot 使用 Gson 而不是 Jackson 的唯一方法吗?我们真的需要排除所有指向 jackson 的传递依赖吗? Preferred-json-mapper 设置还不够?

最佳答案

嗯,WebMvcConfigurerAdapter弃用。从 Spring 5.0 开始,执行以下操作:

@Configuration
public class WebConfig implements WebMvcConfigurer {
@Bean
public Gson gson() {
GsonBuilder b = new GsonBuilder();
b.registerTypeAdapterFactory(HibernateProxyTypeAdapter.FACTORY);
b.registerTypeAdapterFactory(DateTypeAdapter.FACTORY);
b.registerTypeAdapterFactory(TimestampTypeAdapter.FACTORY);
b.registerTypeAdapterFactory(LocalDateTypeAdapter.FACTORY);
b.registerTypeAdapterFactory(LocalDateTimeTypeAdapter.FACTORY);
return b.create();
}

@Override
public void configureMessageConverters(
List<HttpMessageConverter<?>> converters) {
StringHttpMessageConverter stringConverter = new StringHttpMessageConverter();
stringConverter.setWriteAcceptCharset(false);
stringConverter.setSupportedMediaTypes(Collections
.singletonList(MediaType.TEXT_PLAIN));
converters.add(stringConverter);
converters.add(new ByteArrayHttpMessageConverter());
converters.add(new SourceHttpMessageConverter<>());
GsonHttpMessageConverter gsonHttpMessageConverter = new GsonHttpMessageConverter();
gsonHttpMessageConverter.setGson(gson());
gsonHttpMessageConverter.setSupportedMediaTypes(Arrays
.asList(MediaType.APPLICATION_JSON));
converters.add(gsonHttpMessageConverter);
}
}

关于spring-boot - 强制 Spring-Boot 使用 Gson 而不是 Jackson,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40786366/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com