Jackson 配置支持解析JDK8 时间类型_jackson2.15-程序员宅基地

技术标签: spring boot  java  

配置类的代码转自这里

配置类

@Configuration
@ConditionalOnClass(ObjectMapper.class)
@AutoConfigureBefore(JacksonAutoConfiguration.class)
public class JacksonConfig {
    
	@Bean
	public Jackson2ObjectMapperBuilderCustomizer customizer() {
    
		return builder -> {
    
			builder.locale(Locale.CHINA);
			builder.timeZone(TimeZone.getTimeZone(ZoneId.systemDefault()));
			builder.simpleDateFormat(DatePattern.NORM_DATETIME_PATTERN);
			builder.modules(new Java8TimeModule());
		};
	}
}

配置类里要调用的TimeModule类

public class Java8TimeModule extends SimpleModule {
    

	public Java8TimeModule() {
    
		this.addSerializer(LocalDateTime.class, new LocalDateTimeSerializer(DateTimeFormatter.ofPattern(DatePattern.NORM_DATETIME_PATTERN)));
		this.addSerializer(LocalDate.class, new LocalDateSerializer(DateTimeFormatter.ofPattern(DatePattern.NORM_DATE_PATTERN)));
		this.addSerializer(LocalTime.class, new LocalTimeSerializer(DateTimeFormatter.ofPattern(DatePattern.NORM_TIME_PATTERN)));
		this.addDeserializer(LocalDateTime.class, new LocalDateTimeDeserializer(DateTimeFormatter.ofPattern(DatePattern.NORM_DATETIME_PATTERN)));
		this.addDeserializer(LocalDate.class, new LocalDateDeserializer(DateTimeFormatter.ofPattern(DatePattern.NORM_DATE_PATTERN)));
		this.addDeserializer(LocalTime.class, new LocalTimeDeserializer(DateTimeFormatter.ofPattern(DatePattern.NORM_TIME_PATTERN)));
	}
}

下面是我实际使用的测试

测试用到的Dto

@Data
class TimeDto implements Serializable {
    
    private static final long serialVersionUID = 1L;
    //@JsonFormat(pattern="yyyy-MM-dd HH:mm:ss",timezone="GMT+8")
    private Date date;
    private Integer age;
}

测试用到的Controller

@PostMapping(value="/timePost")
    @ResponseBody
    public TimeDto  time(@RequestBody TimeDto timeDto){
    
        return newDto;
    }

Postman请求体
在这里插入图片描述
Postman响应结果
在这里插入图片描述

可以看到,配置后成功实现时间格式转换,不需要在字段上添加@JsonFormat注解,无论是LocalDateTime类型还是Date类型,都不再需要注解。

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq724737991/article/details/105857621

智能推荐

python 括号 垃圾_Python 为什么抛弃累赘的花括号,使用缩进来划分代码块?-程序员宅基地

文章浏览阅读199次。大家好,这是“Python为什么”系列节目的文字稿(文末有观看地址)。本期话题:Python 为什么使用缩进来划分代码块,而不像其它语言使用花括号 {} 或者 “end” 之类的语法?Python 的缩进是一个老生常谈的话题,经常有人会提及它,比如 Python 之父在上个月就恰好转发过一篇文章:image因为这篇文章,Guido 还受邀在 Python Bytes 播客上录制了一期节目:imag..._python为什么抛弃大括号

国王给骑士金币c 语言编程,noip2015年全国青少年信息学奥林匹克竞赛决赛(普及组)01 金币...-程序员宅基地

文章浏览阅读1.2k次。【noip2015年全国青少年信息学奥林匹克竞赛决赛(普及组)】01:金币【题目描述】国王将金币作为工资,发放给忠诚的骑士。第一天,骑士收到一枚金币;之后两天(第二天和第三天),每天收到两枚金币;之后三天(第四、五、六天),每天收到三枚金币;之后四天(第七、八、九、十天),每天收到四枚金币……;这种工资发放模式会一直这样延续下去:当连续N天每天收到N枚金币后,骑士会在之后的连续N+1天里,每天收到...

Python之ruamel.yaml模块详解(二)-程序员宅基地

文章浏览阅读733次。【代码】Python之ruamel.yaml模块详解(二)_ruamel.yaml

用Arduino玩转掌控板(ESP32):B站粉丝计数器-程序员宅基地

文章浏览阅读608次,点赞2次,收藏11次。众所周知,掌控板在创客教育中用的非常广泛,它是一块基于 ESP32 的学习开发板。大家对掌控板编程,用的比较多的都是图形化编程的方式,比如 mPython、Mind+ 等。但是,既然掌控板..._esp32b站粉丝数

数据库系统的结构与组成_数据库结构-程序员宅基地

文章浏览阅读4.5k次,点赞3次,收藏20次。1.3 数据库系统的结构从数据库应用开发人员角度看数据库系统采用三级模式结构,是数据库系统内部的系统结构从数据库最终用户角度看数据库系统的结构有:单用户结构主从式结构分布式结构客户-服务器结构浏览器-应用服务器/数据库服务器等一、数据库系统模式的概念模式是对数据库逻辑结构和特征的描述是型的描述,不涉及具体值模式是相对稳定的实例数据库某一时刻的状态——模式的一个具体值同一个模式可以有很多实例实例随数据库中的数据的更新而变动1、模式2、外模式3_数据库结构

【图像隐写】分数傅里叶变换结合奇异值分解FRFT-SVD灰色图像信息隐写(数字水印嵌入攻击提取 含SNR SSIM)【含Matlab源码 3882期】-程序员宅基地

文章浏览阅读839次,点赞22次,收藏28次。分数傅里叶变换结合奇异值分解FRFT-SVD灰色图像信息隐写(数字水印嵌入攻击提取 含SNR SSIM)完整的代码,方可运行;可提供运行操作视频!适合小白!

随便推点

随机梯度下降(Stochastic Gradient Descent,SGD) 迭代优化算法原理、算法实现及应用_梯度下降算法 sgd对噪声敏感-程序员宅基地

文章浏览阅读1.4k次。概括地来说,随机梯度下降(Stochastic Gradient Descent,SGD)是一种迭代优化算法,用于最小化代价函数J(θ)。该算法在每次迭代时随机选择一个训练样本,并利用该样本对模型参数θ进行更新,然后重复这个过程多次。虽然每次迭代都能获得局部最优解,但是由于采用了随机梯度下降法,使得模型训练的效率很高,而且能够很好地克服局部最优解带来的挑战。但同时,这种方法也是有其缺点的。一般来说,当训练集较小时,随机梯度下降法易受到噪声的影响,可能会陷入局部最优解的漫长寻找中;_梯度下降算法 sgd对噪声敏感

计算机应用基础教师授课视频,微课在计算机应用基础教学的应用-程序员宅基地

文章浏览阅读217次。《微课在计算机应用基础教学的应用》由会员分享,可在线阅读,更多相关《微课在计算机应用基础教学的应用(8页珍藏版)》请在人人文库网上搜索。1、微课在计算机应用基础教学的应用摘要:随着我国社会经济的不断发展和进步,我国教育系统和体系也在日趋完善。传统的教学方法和模式已经不适于当代社会的需求。现代化和技术化和教学方式已经被广泛应用于教学中,这一显著特点在中职计算机教学中也有着直观的体现。微课是近年来新兴..._计算机基础与应用类课程微课(或教学辅助课件)

微信Android模块化架构重构实践_微信 架构优化 安卓-程序员宅基地

文章浏览阅读282次。微信Android架构历史微信Android诞生之初,用的是常见的分层结构设计。这种架构简单、清晰并一直沿袭至今。这是微信架构的v1.x时代。到了微信架构的v2.x时代,随着业务的快速发展,消息通知不及时和Android 2.3版本之前webview内存泄露问题开始突显。由于代码、内存、apk大小都在增长,对系统资源的占用越来越多,导致微信进程容易被系统回收。因此微信开始转向多进..._微信 架构优化 安卓

css变形 平移函数,平移与变形_css教程_css基础_课课家-程序员宅基地

文章浏览阅读423次。这篇文章主要介绍css3新增的transform属性。多年来,web设计师为了给修改页面的外观,都依赖于图片、flash或javaScript才能完成。在css3中,可以用transfform属性功能就可以实现旋转、缩放、倾斜以及移动四种文字以及图像的变形处理。(一)元素平移有许多方法可以使元素在页面显示当中产生位移,能用块状元素合模型,也能用相对以及绝对坐标,现在给大家介绍css提供的两个元素移..._css3平移会导致变形原点改变?

nacos使用及规范_nacos dataid-程序员宅基地

文章浏览阅读3k次。命名空间和group1.namespace作为环境隔离使用,例如开发环境、测试环境、生产环境等。2.group作为微服务隔离,每个group代表一个微服务,例如customer-service等。配置文件命名1.nacos中data-id相当于spring.application.name,由于每个微服务都有一个默认的application.yml配置文件,所以每个微服务的默认配置文件命名为微服务的名称,例如customer-service.yaml2.所有微服务共用的配置文件,比如_nacos dataid

数据结构--插入排序(C语言实现)_void insertsort(link l)-程序员宅基地

文章浏览阅读1.9k次。需要用到的结构体struct LNode { int Data[MAXSIZE]; //Data为待排序序列数组 int Last; //Last为最后一个元素的数组下标 };typedef struct LNode *List;void InsertionSort(List L);关于插入排序,是先将要插入的数据提出来,再以这个数据为开始,向前遍历这里,我们取一个例子来插入排序,假设4,5已排序好这是比前面所有值都小的情况,那么,另一种情况就是没遍历结束就找到._void insertsort(link l)

推荐文章

热门文章

相关标签