spring.jackson.date-format全局配置jackson序列化失效
在spring框架的管理下,有许多通用的配置减少了开发人员不少的时间成本,就例如全局配置jackson对日期格式数据的序列化方式,可以省去我门通篇@JsonFormat()
的配置,但在我实际开发中,这个配置并不生效,查阅了各种资料,都是说
配置类继承WebMvcConfigurationSupport 类(springboot 2.0之后,之前是继承WebMvcConfigurerAdapter)重写其中的添加拦截器相关方法,但是在添加拦截器并继承WebMvcConfigurationSupport后会覆盖@EnableAutoConfiguration关于WebMvcAutoConfiguration的配置!从而导致spring.jackson.date-format 失效
但我项目中的应用场景中并没有覆盖WebMvcAutoConfiguration的配置,那么问题是出在哪呢?debug源码往下看
那么问题发现了,我在项目中将ObjectMapper
放入了spring的ioc容器中,迫使JacksonAutoConfiguration配置类未生效,导致全局配置失效。修改后如下
再使用ObjectMapper与框架内部使用分开(业务场景需定制化对null值不参于序列化),至此问题解决