一文详解JackSon配置信息

一文详解JackSon配置信息,第1张

Spring Boot 在处理对象序列化和反序列化时,默认使用框架自带的JackSon配置。使用框架默认的,通常会面临如下问题:

针对上述问题,存在很多种解决方案。由于底层框架统一配置拦截类实现的模式不同,还是会存在差异,本文主要说明在不同的配置场景下,自定义Jackson配置的一些注意事项和差异化原因:

为了解决特殊对象(如日期)的序列化和反序列化问题,常用方案如下:

自定义一个Jackson配置信息,需要了解Jackson的一些配置标准,如:

重新编写一个ObjectMapper,替换系统默认的bean,就可以实现接口在post请求模式时,对象序列化与反序列化走子定义配置信息了。

重新编写Jackson后,并不能处理get请求时,日期等特殊对象的序列化处理;针对get请求,编写对象的序列化规则函数,通过实现addFormatters()接口,可扩展支持;

编写一个自定义的ObjectMapper bean对象,设置优先级替换默认bean。

重新编写Jackson后,并不能处理get请求时,日期等特殊对象的序列化处理;针对get请求,编写对象的序列化规则函数,通过实现addFormatters()接口,可扩展支持;

编写自定义配置Jackson信息时,需要重写extendMessageConverters方法。具体技术细节原因,请参考文档《 Spring Boot实现WebMvcConfigurationSupport导致自定义的JSON时间返回格式不生效》

参考文档:《两个知识点应用场景 》, 《使用注意事项》

Spring的 WebMvcConfigurer 接口提供了很多方法让开发者来定制SpringMVC的配置。

WebMvcConfigurationSupport implements ApplicationContextAware, ServletContextAware。支持的自定义的配置更多更全,WebMvcConfigurerAdapter有的方法,这个类也都有。该类注释内容翻译:这是提供MVC Java config 背后配置的主要类。 通常是通过将@EnableWebMvc添加到应用程序的@Configuration类中来导入的。 另一个更高级的选择是直接从此类扩展并在需要时重写方法,记住子类要添加@Configuration,重写带有@Bean的方法也要加上@Bean。

参考文档: 《拦截失效原因》

https://www.programcreek.com/java-api-examples/index.php?api=com.fasterxml.jackson.databind.introspect.JacksonAnnotationIntrospector

https://www.iteye.com/blog/conkeyn-2188038


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/7882512.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-11
下一篇 2023-04-11

发表评论

登录后才能评论

评论列表(0条)

保存