SpringFox用于在SpringMVC中整合Swagger,提供web api文档。

参考:

首先直接上个最简单的demo,

@Configuration

@EnableWebMvc

@EnableSwagger2public classSpringfoxConfiguration {

@BeanpublicDocket docket() {return newDocket(DocumentationType.SPRING_WEB);

}

}

确定在Spring能扫描到此配置类:

因为Swagger-UI作为访问入口,但里面全是静态资源,获取具体应用的Controller/RequestMapping信息的url都是写死在文件里面的,目前笔者所用的2.6.1版本中,这个configuration url是/configuration/ui(相对于swagger-ui.html),configuratio/ui对应了springfox中的一个Controller/RequestMapping,相关代码如下:

springfox-swagger-common/src/main/java/springfox/documentation/swagger/web/ApiResourceController.java.....privateSecurityConfiguration securityConfiguration;

@Autowired(required= false)privateUiConfiguration uiConfiguration;

Optional.fromNullable(securityConfiguration).or(SecurityConfiguration.DEFAULT), HttpStatus.OK);

}

@RequestMapping(value= "/configuration/ui")

@ResponseBodypublic ResponseEntity uiConfiguration() {

.......

目前swagger的静态资源作为一个jar包依赖进来,运行时它在我们的classpath中,因此我们配置一下ResourceHandler

@Configurationpublic class SpringMvcConfig extendsWebMvcConfigurerAdapter{

@Overridepublic voidaddResourceHandlers(ResourceHandlerRegistry registry) {

registry.addResourceHandler("/swagger-ui.html**")

.addResourceLocations("classpath:/META-INF/resources/swagger-ui.html");

registry.addResourceHandler("/webjars/**")

.addResourceLocations("classpath:/META-INF/resources/webjars/");super.addResourceHandlers(registry);

}

}

这里就来问题了,因为swagger-ui里面静态资源访问configuration/ui的时候使用的是相对路径,如果你配置了swagger-ui.html映射到/documentation/swagger-html**的话,那么就会访问/documentation/configuration/ui去获取应用信息。但是从上面ApiResourceController可以看到,/configuration/ui是写死在代码里面的,很多同学可能在这里出现了404。当然springfox给出一些解决方案,但一般将swagger-ui.html配置到DispatcherServlet的虚拟目录下面即可。

下面来配置一个json的例子:

@Validate

@ApiOperation(value="register user", consumes="application/json", produces="application/json")

@RequestMapping(path="/registerUser", method={RequestMethod.POST}, consumes={"application/json"}, produces={"application/json; charset=utf-8"})public ActionResponse regisetrUser(@RequestBody finalUserVo userVo){final User userToRegister =UserUtils.voToBo(userVo);final User registeredUser =userService.registerUser(userToRegister, userVo.getPassword());final UserVo registeredUserVo =UserUtils.boToVo(registeredUser);returnok(registeredUserVo);

}

java netfox_SpringFox集成原理相关推荐

  1. Java volatile关键字原理解剖

    Java volatile关键字原理解剖 文章目录 Java volatile关键字原理解剖 参考文章 前置知识 CPU缓存模型 CPU缓存行 并发编程基本概念 Java锁概念 volatile关键字 ...

  2. Android客户端和Java服务器端集成支付宝

    移动端集成支付,似乎是每个App都可能面临的一件事.所有项目都在谈盈利模式,而从C端获取现金流是盈利中最重要的一个途径之一. 当前大家主要采用微信支付和阿里支付集成到自己的移动应用,虽然官方提供一些文 ...

  3. 从tomcat说起全面理解Java web开发原理

    从tomcat说起全面理解Java web开发原理 简介:Java开发分为Java ME,Java SE,Java EE.回顾过去这些的开发工作基本上都是围绕着Java EE的,在开发经历中分别经历了 ...

  4. JAVA IDEA集成geotools gt-mif gdal读取.MIF

    JAVA IDEA集成geotools gt-mif gdal读取.MIF 1. 结论 2. 问题1:gdal maven下载不下来 3. geotools,gt-mif maven配置 4. 源码 ...

  5. java lock的原理,Java中Lock原理探究

    在对于lock锁的使用上,很多人只是掌握了最基础的方法,但是对实现的过程不是很清楚.这里我们对lock锁功能的实现进行分析,以ReentrantLock为例,分析它的锁类型,并对相关的调用方法进行展示 ...

  6. 从零开始学 Java - Spring 集成 Memcached 缓存配置(二)

    Memcached 客户端选择 上一篇文章 从零开始学 Java - Spring 集成 Memcached 缓存配置(一)中我们讲到这篇要谈客户端的选择,在 Java 中一般常用的有三个: Memc ...

  7. Spring + Mybatis 集成原理分析

    由于我之前是写在wizNote上的,迁移过来比较浪费时间,所以,这里我直接贴个图片,PDF文件我上传到百度云盘了,需要的可直接下载. 地址:https://pan.baidu.com/s/12ZJmw ...

  8. Java并发编程原理与实战六:主线程等待子线程解决方案

    Java并发编程原理与实战六:主线程等待子线程解决方案 参考文章: (1)Java并发编程原理与实战六:主线程等待子线程解决方案 (2)https://www.cnblogs.com/pony1223 ...

  9. Java虚拟机工作原理详解

    原文地址:http://blog.csdn.net/bingduanlbd/article/details/8363734 一.类加载器 首先来看一下java程序的执行过程. 从这个框图很容易大体上了 ...

最新文章

  1. 一般服务器崩了要多久能修复,阴阳师服务器崩了修复了吗?阴阳师最新4月15日更新内容...
  2. 【Python基础】Pandas参数设置的八个小技巧
  3. input标签的值只能两位小数_Day51 HTML表格表单标签、flask框架
  4. Android Studio下载、安装、配置及连接真机开发第一个App ——入门选手快进
  5. 对刚接触oracle的人比较有用的一些工具 zt
  6. openvswitch常用命令之ovs-ofctl、ovs-appctl
  7. ionic cordova 常用命令
  8. 巴菲特2021年致股东信披露重仓股名单
  9. memcached服务安装与卸载
  10. 计算机odbc数据源管理位置,ODBC 常见数据源配置整理
  11. 【收藏】win10下使用mklink命令给C盘软件搬家
  12. IP SAN与IB SAN
  13. PPT如何设置幻灯片大小
  14. win10卸载软件_教你彻底关闭Win10自动更新,以及卸载预装应用
  15. 微信公众号排查“该公众号提供的服务出现故障,请稍后再试”问题
  16. 【详细教程】App inventor连接阿里云平台(APP显示STM32发来的温湿度数据等)
  17. 通过1688APP分享商品链接淘口令获取商品详情接口,淘口令返利接口,1688淘口令API接口,淘口令解析接口,1688短链接接口接入方案
  18. 漫画插画绘图工具:MediBangPaintPro for Mac
  19. 真传奇:看看这群清华学生的牛X岁月
  20. 晶体谐振器和晶体振荡器有什么区别?

热门文章

  1. 【看图识算法】这是你见过最简单的 “算法说明书”
  2. Java 洛谷 P1307 数字反转
  3. 计算机专业350分能进复试吗,初试估分350分,这在考研中算一个什么水平?
  4. java parameters用法_(四)Parameters,简单参数就用这个
  5. 数据中心液冷技术发展分析
  6. 机房配电柜、机柜线缆施工标准做法及线缆入柜方式
  7. 网络的概念与网络的基本分类
  8. python排序链表_合并K个排序链表
  9. php 下载的文件损坏,PHP下载文件损坏与打开乱码问题解决办法
  10. EL之Boosting之GB(DTR):利用梯度提升法解决回归(对多变量的数据集+实数值评分预测)问题