你还在用@DateTimeFormat?有没有更好的方法?

简介: 你还在用@DateTimeFormat?有没有更好的方法?

正文


平时的工作中,后端接口一定会有日期的类型,我们是怎么处理的呢?以前的处理方式:

  1. 使用@DateTimeFormat(pattern = "yyyy-MM-dd")
  2. 直接使用用字符串接受,具体的处理在我们的代码中完成日期的转换。

虽然上面的可以解决我们的问题,但是编码比较乱,后期维护难度比较大,这是我们怎么做才可以实现日期的转换呢?下面介绍一下好的方法


环境介绍:

本测试用例采用的是Spring-Boot项目,版本为1.5.9 ,当然 Spring-MVC也是一样的。

首先,我们不在请求接口的地方设置请求日期的类型:

30.png

请求测试:

28.png

根据我们的返回,可以知道,是没有String到Date的转换的组建。

我们找到了问题的原因,我们根据源码寻找是什么类才可以转换。

在我们的org.springframework.web.servlet.config.AnnotationDrivenBeanDefinitionParser这个类中可以看到:

27.png

实际上是给我们的Spring容器定义了一个

FormattingConversionServiceFactoryBean

这个对象,也就是

FormattingConversionService

这个类的组建对象,根据源码,问题就很好解决了,我们可以自定义一个转换器:

26.png

用作与字符串到日期的转换,之后,我们根据bean的生命周期,可以定一个后置处理器修改改组建的一些属性:

25.png

理论上,我们的日期可以正确的解析了,测试一下:

24.png

成功的返回,说明我们的配置成功啦!!

这么做有什么好处呢?好处都在解析的位置:

22.png

看上面,我们可以定义不同的解析日期的pattern来解析我们请求的参数,实现简单方便的请求以及方便维护的结果!

相关文章
|
编解码
Google Earth Engine(GEE) ——全球GDP和HDI的网格化数据集(1990-2015)
Google Earth Engine(GEE) ——全球GDP和HDI的网格化数据集(1990-2015)
337 0
|
存储 缓存 监控
【JVM调优】如何进行JVM调优?一篇文章就够了!
深入解读JVM性能的监控、定位和调优方案,阐述jps/stat/jstack、MAT等常用性能分析工具的使用,提出JVM参数、内存溢出、内存泄漏、CPU飙升、GC频繁等实际场景下JVM调优的方案。
4014 16
【JVM调优】如何进行JVM调优?一篇文章就够了!
|
11月前
|
监控 测试技术 定位技术
探索软件测试中的自动化测试框架选择与实施###
本文不概述传统意义上的摘要内容,而是直接以一段对话形式引入,旨在激发读者兴趣。想象一下,你是一名勇敢的探险家,面前摆满了各式各样的自动化测试工具地图,每张地图都指向未知的宝藏——高效、精准的软件测试领域。我们将一起踏上这段旅程,探讨如何根据项目特性选择合适的自动化测试框架,并分享实施过程中的关键步骤与避坑指南。 ###
175 4
|
11月前
|
Unix Linux Docker
CentOS停更沉寂,RHEL巨变限制源代:Docker容器化技术的兴起助力操作系统新格局
操作系统是计算机系统的核心软件,管理和控制硬件与软件资源,为用户和应用程序提供高效、安全的运行环境。Linux作为开源、跨平台的操作系统,具有高度可定制性、稳定性和安全性,广泛应用于服务器、云计算、物联网等领域。其发展得益于庞大的社区支持,多种发行版如Ubuntu、Debian、Fedora等满足不同需求。
342 5
|
SQL 负载均衡 关系型数据库
*配置MySQL集群
【8月更文挑战第16天】*配置MySQL集群
503 2
|
存储 缓存 算法
动态数组技术详解及其在C语言中的应用
动态数组技术详解及其在C语言中的应用
455 0
|
传感器 人工智能 自动驾驶
农业自动化
农业自动化
221 1
|
传感器 算法 开发工具
Baumer工业相机堡盟万兆网相机如何在联合Halcon中对图像进行平场校正功能(Halcon)
Baumer工业相机堡盟万兆网相机如何在联合Halcon中对图像进行平场校正功能(Halcon)
552 0
|
缓存 负载均衡 算法
Nginx:为什么高性能?Master&worker如何配合?负载均衡算法有哪些?七层和四层负载均衡了解吗?
Nginx:为什么高性能?Master&worker如何配合?负载均衡算法有哪些?七层和四层负载均衡了解吗?