feign 序列化_自定义 feign 反序列化时间字符格式
feign client 默认配置类:默认的配置类为FeignClientsConfiguration 配置了解码和编码。
当请求Feign Client的方法执行时会被 SynchronousMethodHandler 类中的 invoke 方法所拦截。
跟踪代码可知, feign 反序列化对象时,使用 jackson
objectMapper 类在 com.fasterxml.jackson.databind 包中
解析时间格式
重写 DateFormat,从而支持 yyy-MM-dd HH:mm:ss 的字符串格式时间能转化为 Date 对象,而默认格式时间格式支持:2018-07-04T06:23:15.338Z
@Slf4j
public class CustomJackDateFormat extends DateFormat {
private SimpleDateFormat format = new SimpleDateFormat("yyy-MM-dd HH:mm:ss");
private DateFormat dateFormat;
public CustomJackDateFormat(DateFormat dateFormat) {
this.dateFormat = dateFormat;
// 时间转换时,默认相差 8 小时,所以这里设置了时区
dateFormat.setTimeZone(TimeZone.getTimeZone("Asia/Shanghai"));
log.info("自定义 jackson时间 转化格式初始化");
}
@Override
public StringBuffer format(Date date, StringBuffer toAppendTo, FieldPosition fieldPosition) {
return dateFormat.format(date, toAppendTo, fieldPosition);
}
@Override
public Date parse(String source, ParsePosition pos) {
Date date = null;
try {
// 先按我的规则来
date = format.parse(source, pos);
} catch (Exception e) {
// 不行,那就按原先的规则吧
date = dateFormat.parse(source, pos);
}
return date;
}
// 这里装饰clone方法的原因是因为clone方法在jackson中也有用到
@Override
public Object clone() {
Object format = dateFormat.clone();
return new CustomJackDateFormat((DateFormat) format);
}
}
重新设置 ObjectMapper 的时间格式
@Configuration
@Slf4j
public class CustomWebConfig {
@Autowired(required = false)
private Jackson2ObjectMapperBuilder jackson2ObjectMapperBuilder;
@Bean
public MappingJackson2HttpMessageConverter mappingJackson2HttpMessageConverter() {
ObjectMapper mapper = jackson2ObjectMapperBuilder.build();
// ObjectMapper为了保障线程安全性,里面的配置类都是一个不可变的对象
// 所以这里的setDateFormat的内部原理其实是创建了一个新的配置类
DateFormat dateFormat = mapper.getDateFormat();
// 自定义 jackson 转换时间格式
mapper.setDateFormat(new CustomJackDateFormat(dateFormat));
MappingJackson2HttpMessageConverter mappingJsonpHttpMessageConverter = new MappingJackson2HttpMessageConverter(
mapper);
return mappingJsonpHttpMessageConverter;
}
}
feign 序列化_自定义 feign 反序列化时间字符格式相关推荐
- feign 序列化_Spring Cloud Feign 配置 FastJson
如今,越来越多的Spring MVC项目都选择使用FastJson做为Json解析框架,并且都会添加类似如下配置以支持FastJson: @Configuration public class Web ...
- ctf之php序列化,0ctf_2016_unserialize(php反序列化逃逸字符)
一.0ctf_2016_unserialize(php反序列化逃逸字符)1 2 3 4知识点: * 代码审计 * Unserialize * LFR 通过源码,我们可以发现在config.php中的f ...
- baseresponse响应类_内部类、响应类Response、序列化基类、反序列化、全局局部钩子...
一.内部类 1.概念:将类定义在一个类的内部,被定义的类就是内部类 2.特点:内部类及内部类的所以名称空间,可以直接被外部类访问的 3. 应用:通过内部类的名称空间,给外部类额外拓展一些特殊的属性(配 ...
- feign使用_【微服务】165:Feign的最佳使用方式
今天是刘小爱自学Java的第165天. 在此之前做一个强调: 这段时间因为临近国庆,工作上的事情变多,再加上自己国庆要回家,可支配的时间和网络都是一个大问题. 学习效率.学习进度会受到很大的影响,甚至 ...
- python3 中的Json序列化、反序列化 和 字符编码的问题解决
python3 中的Json序列化.反序列化 和 字符编码的问题解决 参考文章: (1)python3 中的Json序列化.反序列化 和 字符编码的问题解决 (2)https://www.cnblog ...
- 自定义feign配置与服务调用的安全验证
feign的使用,可以简化服务之间的调用,让服务之间调用更加优雅,本文从feign自定义配置和创建feign完成服务之间复杂权限验证,来进一步理解和定制feign. 本文示例参考了<Spring ...
- feignclient注解使用_从 Feign 使用注意点到 RESTFUL 接口设计规范
最近项目中大量使用了Spring Cloud Feign来对接http接口,踩了不少坑,也产生了一些对RESTFUL接口设计的想法,特此一篇记录下. SpringMVC的请求参数绑定机制 了解Feig ...
- wpsppt放映时间_怎么修改wps演示的放映时间 wps演示自定义修改放映时间的步骤方法...
当我们制作完幻灯片时,那么最后我们还需要设置好幻灯片的放映时间,那么在 怎么修改wps演示的放映时间 步骤1:首先打开我们已经排练过的幻灯片,这里我们的时间已经设置好,但后面又插入一张新的幻灯片,这里 ...
- 魔方APP项目-04-用户模块API接口、Marshmallow,基本构造器(Schema),Schema数据序列化、Schema数据反序列化、反序列化对数据验证、模型构造器(ModelSchema)
用户模块 当前开发的项目属于社交类型项目,所以关于用户的信息和功能直接贯穿了整个项目.所以此处实现用户模块功能,我们先把用户基本信息构建起来,并通过基本信息实现用户注册登录相关功能,后面遇到业务再继续 ...
最新文章
- weex Android 空白,Weex H5显示正常,android和ios皆显示一片空白,为什么呢?
- Java开发学习必须了解的基础知识点
- 嵌入式linux python移植过程_嵌入式linux项目开发(一)——BOA移植
- c语言程序设计平时作业代刷,C语言程序设计——小学生口算刷题系统
- 洛谷入门题P1422、P1085、P1089、P1909题解(Java语言描述)
- 【HTML】获取当前时间并显示在网页上
- jquery 选择器、筛选器、事件绑定与事件委派
- 3.10 datetime
- 单链表(线性表的链式存储)---C语言版
- Python中对list进行排序
- Nginx 设置文件缓存时间
- 通过微信小程序看趋势
- c语言程序设计项目化教程第二版,c语言程序设计下载
- 软件安装管家NavisWorks2020中文版软件安装包下载地址及安装教程
- Maven的基本概念(三)
- tablayou设置固定下划线和根据文字显示长短显示下划线
- 算法的时间复杂度 递推
- 解决vs2019中vsvim无法使用ctrl+[的问题
- postman,请求前置脚本,Pre-requests Script
- MUI中vue的@click事件没反应
热门文章
- 02-python你应该知道这这些
- 自愿认购效果不佳 绿电消费如何激活?
- 即将买房的一定要关注这个问题-认筹
- 2015初三计算机考试题答案,2015初中生计算机考试年试题及答案.doc
- 计算机毕设 SSM校园二手商品交易平台 校园二手市场交易平台 二手物品置换平台Java
- 陶晶驰stm32_陶晶驰HMI3.5寸串口屏的详解之梳理F4总结系列准备篇(二)
- Android项目导入时可能遇到的问题
- python docx 图片_python-docx图像的添加与删除
- TransFuse:Fusing Transformerd and CNNs for Medical Image Segmentation
- bit bin mcs文件区别