springfox源码_修改springfox-swagger源码,使example中时间格式默认为“yyyy-MM-dd HH:mm:ss”...

修改swagger源码,使example中时间格式默认为“yyyy-MM-dd HH:mm:ss”

前言

简单点说,在swagger中,怎么能针对以下vo中的java.util.Date类型的字段:createDate,

能在swagger的界面上达到下面的效果呢?

如果尝试过的同学,可能知道,这里,如果不做任何修改的话,出来的效果是下面这样的:

解决方法

我一开始百度搜了下,找到了这篇:

它的解决办法呢,是在ApiModelProperty注解上加了 example 属性,即下图所示:

/**

* 创建时间

*/

@ApiModelProperty(value = "创建时间", example = "2019-10-30 15:34:12")

private Date createDate;

我吧,感觉这样也很麻烦,如果能够感知到是Date类型,自动就把 example设为上述格式多好?

不用多说,估计要改源码了。

我的办法是,从 example()方法入手,查找使用到它的地方(记得maven要勾选下载源码),我们发现了如下两处:

断点打在上面的方法内之后,再次运行,寻找合适的切入点,发现其调用堆栈如下:

最终修改方法如下:

在工程里,新建了一个同包名同类名的 springfox.documentation.builders.ModelPropertyBuilder类,然后修改如下方法:

这里,简单附上代码,修改得很少:

## springfox.documentation.builders.ModelPropertyBuilder

/**

* Updates the example

* @param example - example value

* @return this

* @deprecated @since 2.8.1 Use the one with Object as parameter

*/

@Deprecated

public ModelPropertyBuilder example(String example) {

if ("java.util.Date" .equals(qualifiedType)) {

this.example = "2019-10-30 15:34:12";

}else {

this.example = defaultIfAbsent(example, this.example);

}

return this;

}

具体的swagger版本可能有微小差别,但差别应该不大,我这边是最新版的2.9.2

io.springfox

springfox-swagger2

2.9.2

io.springfox

springfox-swagger-ui

2.9.2

总结

整体来说,只是覆盖jar包的类,很简单,主要是理清其逻辑。如果不清楚怎么覆盖jar包的类,可参考我上一篇文章。

Lucene全文搜索之分词器:使用IK Analyzer中文分词器(修改IK Analyzer源码使其支持lucene5.5.x)

注意:基于lucene5.5.x版本 一.简单介绍下IK Analyzer IK Analyzer是linliangyi2007的作品,再此表示感谢,他的博客地址:http://linliangyi2 ...

修改sqlarchemy源码使其支持jdbc连接mysql

注意:本文不会将所有完整源码贴出,只是将具体的思路以及部分源码贴出,需要感兴趣的读者自己实验然后实现吆. 缘起 公司最近的项目需要将之前的部分业务的数据库连接方式改为jdbc,但由于之前的项目都使用s ...

TCP/IP源码(59)——TCP中的三个接收队列

http://blog.chinaunix.net/uid-23629988-id-3482647.html TCP/IP源码(59)——TCP中的三个接收队列  作者:gfree.wind@gmai ...

2018-09-24 Java源码英翻中网页演示

在线演示地址: 源代码翻译 两部分如下. 独立的Java代码翻译库 续前文代码翻译尝试-使用Roaster解析和生成Java源码 源码库: program-in-chinese/java_code_t ...

mysql-5.5.28源码安装过程中错误总结

介绍一下关于mysql-5.5.28源码安装过程中几大错误总结,希望此文章对各位同学有所帮助.系统centOS 6.3 mini (没有任何编译环境)预编译环境首先装了众所周知的 cmake(yum ...

2018-10-08 Java源码英翻中进展-内测上线

创建了一个子域名: http://translate.codeinchinese.com/ 欢迎试用, 如有建议/发现问题欢迎在此拍砖: program-in-chinese/code_transla ...

解决IIS7、IIS7.5中时间格式显示的问题

今天在用IIS7的时候发现一个关于时间格式的问题,当我在ASP中使用now()时间函数的时候,日期是以"/"来分隔,而不是以"-"来分隔的,使得我在运行程序的时 ...

oracle中时间格式时候的大于号是大于和等于的意思

oracle中时间格式时候的大于号是大于和等于的意思

随机推荐

1、rhel 6.5 系统准备

1.启动.关闭.重置服务    (rhel7 为 systemctl) [root@rhel-6 ~]# service atd status #关闭atd服务 atd 已停 [root@rhel-6 ...

JDBC连接池。。。转载

1. 引言  近年来,随着Internet/Intranet建网技术的飞速发展和在世界范围内的迅速普及,计算机  应用程序已从传统的桌面应用转到Web应用.基于B/S(Browser/Server)架 ...

Ant自动编译打包&发布 android项目

Eclipse用起来虽然方便,但是编译打包android项目还是比较慢,尤其将应用打包发布到各个渠道时,用Eclipse手动打包各种渠道包就有点不切实际了,这时候我们用到Ant帮我们自动编译打包了. ...

emWin(ucGUI)在PC机上模拟的按键响应多次解决办法 worldsing

emWin(ucgui) 在PC端的模拟器,默认的按键机制是"按抬都Msg",当在按下键盘时,会收到一个key值-1,在按键没有离开时一直维持,当按键松开时还发送一个key值-0的 ...

关于微信分享JSSDK使用需注意的几点问题

微信公众平台技术文档中有微信JS-SDK说明文档,详情见地址https://mp.weixin.qq.com/wiki 官方给出了使用步骤和DEMO,下面说一下几点需要注意的问题. 1.登录微信公众平 ...

java:接口特性 接口与抽象类/普通类的区别

接口 书面定义: Java接口是一系列方法的声明,是一些方法特征的集合,一个接口只有方法的特征没有方法的实现,因此这些方法可以在不同的地方被不同的类实现,而这些实现可以具有不同的行为(功能). 在ja ...

Touch Handling in Cocos2D 3.x(六)

使英雄变成可触碰的对象 这是另一个非常有用的特性.很多用户需要捡起已经存在的英雄然后满屏幕移动它们.让我们按以下步骤实现该功能: 如果用户触摸屏幕空白位置,一个新的英雄将被创建 如果用户触摸一个已经存 ...

Centos7下安装pptp客户端

1.使用yum安装ppp和pptp yum install ppp pptp 2.配置pptp pptpsetup --create vpn连接名称(自定义) --server VPN服务器IP -- ...

A1134. Vertex Cover

A vertex cover of a graph is a set of vertices such that each edge of the graph is incident to at le ...

PowerDesigner 物理数据模型(PDM) 说明

ref: https://blog.csdn.net/tianlesoftware/article/details/6874067 一.     PDM 介绍 物理数据模型(Physical Data ...

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值