jackon.date-format 不生效

news2024/10/7 10:13:12

文章目录

  • 前言
  • 一、可能原因
  • 二、解决方案
    • 2.1、升级nacos(可忽略)
    • 2.2. 自定义日期反序列化格式
  • 总结


前言

springboot 默认json 序列化使用jackon 正常配置jackon.date-format=yyyy-MM-dd HH:mm:ss 即可格式化日期格式,但是由于项目引用各种jar和拦截器,导致此配置失效。具体原因不明。

一、可能原因

添加拦截器并继承 WebMvcConfigurationSupport 后会覆盖@EnableAutoConfiguration关于WebMvcAutoConfiguration的配置!从而导致所有的Date返回都变成时间戳。

二、解决方案

查询大部分解决方案都是实现WebMvcConfigurer 在内部自己转换。只是大部分网上的代码cv后都不生效。
既然jackon的配置失效如此脆弱,那么为了防止合作开发时其他人又引入了什么jar包或者拦截器,我们采用自定义序列化日期的方式。
ps:试过用fastjson转换,但是fastjson对时区转换不友好,最后摒弃。

2.1、升级nacos(可忽略)

  1. 升级nacos为2.2.7.RELEASE,升级后发现nacos-client将序列化组件已经更改为jackson,nacos客户端也顺便升级一下2.1.0
    在这里插入图片描述

在这里插入图片描述
2. 如果报错找不到nacos logging类则指定alibaba.cloud版本

<spring-cloud-alibaba.version>2.2.7.RELEASE</spring-cloud-alibaba.version>
<dependency>
    <groupId>com.alibaba.cloud</groupId>
    <artifactId>spring-cloud-alibaba-dependencies</artifactId>
    <version>${spring-cloud-alibaba.version}</version>
    <type>pom</type>
    <scope>import</scope>
</dependency>

2.2. 自定义日期反序列化格式

该类可以放在底层common包内,这样其他服务引入common即可生效。

@Configuration
public class WebMvcConfigure implements WebMvcConfigurer {
    public WebMvcConfigure() {
    }
	//日期反序列化格式化
    @Bean
    public Jackson2ObjectMapperBuilderCustomizer jackson2ObjectMapperBuilderCustomizer() {
        return (builder) -> {
            JavaTimeModule javaTimeModule = new JavaTimeModule();
            javaTimeModule.addSerializer(LocalDateTime.class, new LocalDateTimeSerializer(DateTimeFormatter.ofPattern(DateStyle.YYYY_MM_DD_HH_MM_SS.getValue())));
            javaTimeModule.addDeserializer(LocalDateTime.class, new LocalDateTimeDeserializer(DateTimeFormatter.ofPattern(DateStyle.YYYY_MM_DD_HH_MM_SS.getValue())));
            builder.modules(new Module[]{javaTimeModule});
        };
    }
	//其他默认注入bean
    @Bean
    public FeignHeaderConfig FeignHeaderConfig() {
        return new FeignHeaderConfig();
    }

    @Bean
    public OkHttpClient.Builder okHttpClientBuilder() {
        return (new OkHttpClient.Builder()).addInterceptor(new FeignOkHttpClientConfig());
    }

    @Bean
    public FilterConfig filterConfig() {
        return new FilterConfig();
    }
}

spring.factories 自动注入该配置类,如果不是common引入的方式可以不需要自动注入

org.springframework.boot.autoconfigure.EnableAutoConfiguration = \
com.cuzue.bg.generic.common.autoconfig.WebMvcConfigure

总结

本文只是解决了日期反序列化后格式化的问题,其实也是比较稳定的解决方式。
但是没有分析为什么jackon配置失效的问题,希望有了解的同学指点一下。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/195593.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

直播 | StarRocks 实战系列第一期--部署导入

你今年的 Flag 定了吗&#xff1f;兔年开工&#xff0c;仪式感就从立 Flag 开始&#xff01;在技术上&#xff1a;兔飞猛进&#xff0c;能力吊打同行&#xff1b;在工作上&#xff1a;兔步青云&#xff0c;升职加薪获得领导赏识&#xff1b;在学习上&#xff1a;前兔无量&#…

总结继承和多态的一些问题

在学习了继承和多态后&#xff0c;本人有以下容易造成混乱的点以及问题&#xff1a; 1.区分虚表和虚基表 虚表即虚函数表&#xff0c;存储的是虚函数的地址。另外&#xff1a;虚表是在编译阶段就生成的&#xff0c;一般存在于常量区&#xff08;代码段&#xff09;。 虚基表…

Apache Spark 机器学习 特征转换 2

PCA&#xff08;Principal Component Analysis&#xff09; 该转换器是主成分分析方法&#xff0c;是统计学领域中对数据样本的正相关的转换与分析方法&#xff0c;在一批具有相关性的数据样本的数据集中&#xff0c;删除多余的重复的相关变量&#xff0c;得到少量具有信息代表…

一刷代码随想录——贪心算法

1.理论基础通过局部最优&#xff0c;推出整体最优。2.分发饼干 455题目描述&#xff1a;假设你是一位很棒的家长&#xff0c;想要给你的孩子们一些小饼干。但是&#xff0c;每个孩子最多只能给一块饼干。对每个孩子 i&#xff0c;都有一个胃口值 g[i]&#xff0c;这是能让孩子们…

Softmax Classifier 多分类问题

文章目录8、Softmax Classifier 多分类问题8.1 Revision8.2 Softmax8.2.1 Design8.2.2 Softmax Layer8.2.3 NLLLoss vs CrossEntropyLoss8.2.4 Mini-Batch8.3 MNIST dataset8.3.1 Import Package8.3.2 Prepare Dataset8.3.3 Design Model8.3.4 Construct Loss and Optimizer8.3…

农业气象站—提供多元化数据

中国气象局应急减灾与公共服务司司长王志华曾表示&#xff0c;“农业气象灾害风险预警是守住粮食安全底线的关键一环。”在全球新冠肺炎疫情常态化的形势下&#xff0c;我国将粮食安全摆在了更突出的位置。 粮食在我国具有重要的战略地位&#xff0c;自从建国以来&#xff0c;…

功能测试(环境搭建)

目录 1.功能测试流程&#xff1a; 2.环境搭建&#xff08;源码&#xff09; 2.1.环境说明&#xff08;后台&#xff09;&#xff1a; 2.2.代码仓库获取代码 2.3.项目环境搭建 2.4后台部署 3.环境搭建&#xff08;war包&#xff09; 1.功能测试流程&#xff1a; 2.环境搭建…

【C++初阶】八、STL---list(总)|list的介绍|list的使用

目录 一、list的介绍 二、list的使用 2.1 Construct 2.2 operator 2.3 Iterators 2.4 Capacity 2.5 Element access 2.6 Modifiers 2.7 Operations 一、list的介绍 有数据结构作为基础&#xff0c;STL 上手很快&#xff0c;学习成本也低&#xff0c;本文也是讲解 list…

大数据技术架构(组件)17——Hive:UDF/UDTF/UDAF三者区别

1.4.12、三者区别1.4.12.1、UDFUDF全称为User Defined Function&#xff08;即用户自定义函数&#xff09;&#xff0c;UDF开发在日常工作当中是非常普遍的。我们写一段SQL&#xff0c;调用UDF&#xff0c;得到结果就算是结束了&#xff0c;但大家有没有想过UDF底层是怎么执行的…

CSS语法指南

学前需求 需要对HTML有一定的了解 什么是 CSS? CSS 指层叠样式表 (Cascading Style Sheets) 样式定义如何显示 HTML 元素样式通常存储在样式表中把样式添加到 HTML 4.0 中&#xff0c;是为了解决内容与表现分离的问题外部样式表可以极大提高工作效率外部样式表通常存储在 CS…

操作系统—王道考研之进程管理

by:星辰 课程视频链接:https://www.bilibili.com/video/BV1YE411D7nH 第 2 章 进程管理 2.1 进程与线程 2.1.1 进程的定义、特征、组成、组织 2.1.1.1 总览 2.1.1.2 进程的定义 &#xff08;1&#xff09;程序的概念 程序&#xff1a;一组计算机能识别和执行的指令。 是静…

C语言及算法设计课程实验五:循环结构程序设计

C语言及算法设计课程实验五&#xff1a;循环结构程序设计一、实验目的二、实验内容2.1、统计字符个数2.2、输出所有的“水仙花数”2.3、猴子吃桃问题2.4、牛顿迭代法求方程三、实验步骤3.1、循环结构程序设计实验题目一&#xff1a;统计字符个数1、定义变量2、 输入一串字符3、…

基础IO(上)

基础IO&#xff08;上&#xff09;回顾文件知识回顾C文件接口系统文件I/O接口介绍openclosewriteread理解文件描述符fd理解0 1 2 3 4....文件描述符的分配规则重定向的本质及相关操作认识重定向重定向的具体原理重定向的操作追加重定向和输入重定向追加重定向输入重定向缓冲区的…

C++ STL源码剖析 笔记补充

写在前面 简单记录一些《C STL源码剖析中》涉及到的C语法和注意事项。 1. 静态常量成员在类内直接初始化 如果含有const static integral类型的成员变量&#xff0c;可以在类内定义时直接初始化&#xff1b; 注意integral不只是int类型&#xff0c;而是包含所有的整型&#…

< 每日算法 - Javascript解析:经典弹珠游戏 >

每日算法 - JavaScript解析&#xff1a;弹珠游戏一、任务描述&#xff1a;》 示例一&#xff1a;》示例二二、题意解析三、解决方案&#xff1a;往期内容 &#x1f4a8;一、任务描述&#xff1a; 欢迎各位来到「力扣嘉年华」&#xff0c;接下来将为各位介绍在活动中广受好评的…

HSAF实战收获

收获1&#xff1a;MySQL数据类型对应Java类型表格这里的timestamp类型在Java中对应TimeStamp类型&#xff0c;varchar和char都是对饮的String类型收获2&#xff1a;TableFieldTableField(exist false) 注解加载bean属性上&#xff0c;表示当前属性不是数据库的字段&#xff0c…

[golang Web开发] 4.golang web开发:模板引擎

一.简介 使用 Go 的 Web 模板引擎需要以下两个步骤&#xff1a; (1).对文本格式的模板源进行语法分析&#xff0c;创建一个经过语法分析的模板结构&#xff0c;其中模板源既可以是一个字符串,也可以是模板文件中包含的内容 (2).执行经过语法分析的模板&#xff0c;将ResponseWr…

Django User模型

Django User模型用户管理自定义用户模型Django自定义验证引用User模型视图开发创建序列器创建视图创建路由用户注册注册序列化器注册视图注册路由用户管理 在开发登录功能的时候需要数据库来保存用户登录信息和状态&#xff0c;Django中有个内置app 名为 django.contrib.auth …

ICT是什么

信息与通信技术&#xff08;ICT&#xff0c;information and communications technology&#xff09;是一个涵盖性术语&#xff0c;覆盖了所有通信设备或应用软件&#xff1a;比如说&#xff0c;收音机、电视、移动电话、计算机、网络硬件和软件、卫星系统&#xff0c;等等&…

(1)Nginx简介和安装教程

目录 一、下载 二、报错提醒&环境安装 1、安装gcc编译器 2、安装perl库 3、安装 zlib库 4、也可通过命令进行统一安装 三、编译及安装 四、启动并访问 1、启动 2、访问 3、问题排查 五、安装成系统文件 一、下载 官网地址&#xff1a;nginx news Nginx官网提供…