Jackson
springboot 转换 @ResponseBody 自定义用的是 jackson,用Date类型是没有任何问题。
但JDK8的java.time.LocalDateTime 之类的时间类型 就不能正常 convert。
找了些分享文档,大多数提到引用:
compile group:'com.fasterxml.jackson.datatype',name:'jackson-datatype-jsr310',version:'2.9.3'
然后配置 spring.jackson.serialization.write_dates_as_timestamps: false;
可是尴尬的是虽然起了作用但是并没有达到我们的预期,自定义<yyyy-MM-dd HH:mm> 之类的。
这里贴出我的配置:
@Configuration
public class CommonConfiguration {
@Bean
public Module jsonMapperJava8DateTimeModule() {
SimpleModule module = new SimpleModule();
module.addSerializer(LocalDateTime.class, new LocalDateTimeSerializer(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm")));
module.addSerializer(LocalDate.class, new LocalDateSerializer(DateTimeFormatter.ofPattern("yyyy-MM-dd")));
module.addSerializer(LocalTime.class, new LocalTimeSerializer(DateTimeFormatter.ofPattern("HH:mm")));
return module;
}
}
生效结果:
tk.mybatis.mapper 3.5.0
项目中用到的是mybatis,之前用Date的时候也是正常。用了LocalDateTime之后,一些调用辅助mapper的更新时间无效了。
解决办法:
特此总结。