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 反序列化时间字符格式相关推荐

  1. feign 序列化_Spring Cloud Feign 配置 FastJson

    如今,越来越多的Spring MVC项目都选择使用FastJson做为Json解析框架,并且都会添加类似如下配置以支持FastJson: @Configuration public class Web ...

  2. ctf之php序列化,0ctf_2016_unserialize(php反序列化逃逸字符)

    一.0ctf_2016_unserialize(php反序列化逃逸字符)1 2 3 4知识点: * 代码审计 * Unserialize * LFR 通过源码,我们可以发现在config.php中的f ...

  3. baseresponse响应类_内部类、响应类Response、序列化基类、反序列化、全局局部钩子...

    一.内部类 1.概念:将类定义在一个类的内部,被定义的类就是内部类 2.特点:内部类及内部类的所以名称空间,可以直接被外部类访问的 3. 应用:通过内部类的名称空间,给外部类额外拓展一些特殊的属性(配 ...

  4. feign使用_【微服务】165:Feign的最佳使用方式

    今天是刘小爱自学Java的第165天. 在此之前做一个强调: 这段时间因为临近国庆,工作上的事情变多,再加上自己国庆要回家,可支配的时间和网络都是一个大问题. 学习效率.学习进度会受到很大的影响,甚至 ...

  5. python3 中的Json序列化、反序列化 和 字符编码的问题解决

    python3 中的Json序列化.反序列化 和 字符编码的问题解决 参考文章: (1)python3 中的Json序列化.反序列化 和 字符编码的问题解决 (2)https://www.cnblog ...

  6. 自定义feign配置与服务调用的安全验证

    feign的使用,可以简化服务之间的调用,让服务之间调用更加优雅,本文从feign自定义配置和创建feign完成服务之间复杂权限验证,来进一步理解和定制feign. 本文示例参考了<Spring ...

  7. feignclient注解使用_从 Feign 使用注意点到 RESTFUL 接口设计规范

    最近项目中大量使用了Spring Cloud Feign来对接http接口,踩了不少坑,也产生了一些对RESTFUL接口设计的想法,特此一篇记录下. SpringMVC的请求参数绑定机制 了解Feig ...

  8. wpsppt放映时间_怎么修改wps演示的放映时间 wps演示自定义修改放映时间的步骤方法...

    当我们制作完幻灯片时,那么最后我们还需要设置好幻灯片的放映时间,那么在 怎么修改wps演示的放映时间 步骤1:首先打开我们已经排练过的幻灯片,这里我们的时间已经设置好,但后面又插入一张新的幻灯片,这里 ...

  9. 魔方APP项目-04-用户模块API接口、Marshmallow,基本构造器(Schema),Schema数据序列化、Schema数据反序列化、反序列化对数据验证、模型构造器(ModelSchema)

    用户模块 当前开发的项目属于社交类型项目,所以关于用户的信息和功能直接贯穿了整个项目.所以此处实现用户模块功能,我们先把用户基本信息构建起来,并通过基本信息实现用户注册登录相关功能,后面遇到业务再继续 ...

最新文章

  1. weex Android 空白,Weex H5显示正常,android和ios皆显示一片空白,为什么呢?
  2. Java开发学习必须了解的基础知识点
  3. 嵌入式linux python移植过程_嵌入式linux项目开发(一)——BOA移植
  4. c语言程序设计平时作业代刷,C语言程序设计——小学生口算刷题系统
  5. 洛谷入门题P1422、P1085、P1089、P1909题解(Java语言描述)
  6. 【HTML】获取当前时间并显示在网页上
  7. jquery 选择器、筛选器、事件绑定与事件委派
  8. 3.10 datetime
  9. 单链表(线性表的链式存储)---C语言版
  10. Python中对list进行排序
  11. Nginx 设置文件缓存时间
  12. 通过微信小程序看趋势
  13. c语言程序设计项目化教程第二版,c语言程序设计下载
  14. 软件安装管家NavisWorks2020中文版软件安装包下载地址及安装教程
  15. Maven的基本概念(三)
  16. tablayou设置固定下划线和根据文字显示长短显示下划线
  17. 算法的时间复杂度 递推
  18. 解决vs2019中vsvim无法使用ctrl+[的问题
  19. postman,请求前置脚本,Pre-requests Script
  20. MUI中vue的@click事件没反应

热门文章

  1. 02-python你应该知道这这些
  2. 自愿认购效果不佳 绿电消费如何激活?
  3. 即将买房的一定要关注这个问题-认筹
  4. 2015初三计算机考试题答案,2015初中生计算机考试年试题及答案.doc
  5. 计算机毕设 SSM校园二手商品交易平台 校园二手市场交易平台 二手物品置换平台Java
  6. 陶晶驰stm32_陶晶驰HMI3.5寸串口屏的详解之梳理F4总结系列准备篇(二)
  7. Android项目导入时可能遇到的问题
  8. python docx 图片_python-docx图像的添加与删除
  9. TransFuse:Fusing Transformerd and CNNs for Medical Image Segmentation
  10. bit bin mcs文件区别