java netfox_SpringFox集成原理
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集成原理相关推荐
- Java volatile关键字原理解剖
Java volatile关键字原理解剖 文章目录 Java volatile关键字原理解剖 参考文章 前置知识 CPU缓存模型 CPU缓存行 并发编程基本概念 Java锁概念 volatile关键字 ...
- Android客户端和Java服务器端集成支付宝
移动端集成支付,似乎是每个App都可能面临的一件事.所有项目都在谈盈利模式,而从C端获取现金流是盈利中最重要的一个途径之一. 当前大家主要采用微信支付和阿里支付集成到自己的移动应用,虽然官方提供一些文 ...
- 从tomcat说起全面理解Java web开发原理
从tomcat说起全面理解Java web开发原理 简介:Java开发分为Java ME,Java SE,Java EE.回顾过去这些的开发工作基本上都是围绕着Java EE的,在开发经历中分别经历了 ...
- 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. 源码 ...
- java lock的原理,Java中Lock原理探究
在对于lock锁的使用上,很多人只是掌握了最基础的方法,但是对实现的过程不是很清楚.这里我们对lock锁功能的实现进行分析,以ReentrantLock为例,分析它的锁类型,并对相关的调用方法进行展示 ...
- 从零开始学 Java - Spring 集成 Memcached 缓存配置(二)
Memcached 客户端选择 上一篇文章 从零开始学 Java - Spring 集成 Memcached 缓存配置(一)中我们讲到这篇要谈客户端的选择,在 Java 中一般常用的有三个: Memc ...
- Spring + Mybatis 集成原理分析
由于我之前是写在wizNote上的,迁移过来比较浪费时间,所以,这里我直接贴个图片,PDF文件我上传到百度云盘了,需要的可直接下载. 地址:https://pan.baidu.com/s/12ZJmw ...
- Java并发编程原理与实战六:主线程等待子线程解决方案
Java并发编程原理与实战六:主线程等待子线程解决方案 参考文章: (1)Java并发编程原理与实战六:主线程等待子线程解决方案 (2)https://www.cnblogs.com/pony1223 ...
- Java虚拟机工作原理详解
原文地址:http://blog.csdn.net/bingduanlbd/article/details/8363734 一.类加载器 首先来看一下java程序的执行过程. 从这个框图很容易大体上了 ...
最新文章
- 一般服务器崩了要多久能修复,阴阳师服务器崩了修复了吗?阴阳师最新4月15日更新内容...
- 【Python基础】Pandas参数设置的八个小技巧
- input标签的值只能两位小数_Day51 HTML表格表单标签、flask框架
- Android Studio下载、安装、配置及连接真机开发第一个App ——入门选手快进
- 对刚接触oracle的人比较有用的一些工具 zt
- openvswitch常用命令之ovs-ofctl、ovs-appctl
- ionic cordova 常用命令
- 巴菲特2021年致股东信披露重仓股名单
- memcached服务安装与卸载
- 计算机odbc数据源管理位置,ODBC 常见数据源配置整理
- 【收藏】win10下使用mklink命令给C盘软件搬家
- IP SAN与IB SAN
- PPT如何设置幻灯片大小
- win10卸载软件_教你彻底关闭Win10自动更新,以及卸载预装应用
- 微信公众号排查“该公众号提供的服务出现故障,请稍后再试”问题
- 【详细教程】App inventor连接阿里云平台(APP显示STM32发来的温湿度数据等)
- 通过1688APP分享商品链接淘口令获取商品详情接口,淘口令返利接口,1688淘口令API接口,淘口令解析接口,1688短链接接口接入方案
- 漫画插画绘图工具:MediBangPaintPro for Mac
- 真传奇:看看这群清华学生的牛X岁月
- 晶体谐振器和晶体振荡器有什么区别?
热门文章
- 【看图识算法】这是你见过最简单的 “算法说明书”
- Java 洛谷 P1307 数字反转
- 计算机专业350分能进复试吗,初试估分350分,这在考研中算一个什么水平?
- java parameters用法_(四)Parameters,简单参数就用这个
- 数据中心液冷技术发展分析
- 机房配电柜、机柜线缆施工标准做法及线缆入柜方式
- 网络的概念与网络的基本分类
- python排序链表_合并K个排序链表
- php 下载的文件损坏,PHP下载文件损坏与打开乱码问题解决办法
- EL之Boosting之GB(DTR):利用梯度提升法解决回归(对多变量的数据集+实数值评分预测)问题