03、Swagger2和Springmvc整合详细记录(爬坑记录)
时间 | 内容 | 备注 |
---|---|---|
2018年6月18日 | 基本使用 | spirngmvc整合swagger2 |
开始之前这个系列博文基本是,在项目的使用中一些模块的内容记录,但是后期逐渐优化,不单单是整合内容。
swagger简介
1、swagger主要提供了三个功能:
- Swagger Editor: Swagger提供的一个编辑器,用来通过Swagger提供的特定的YAML语法来编写API文档
- Swagger Codegen: 代码生成器
- Swagger UI: YAML语法定义我们的RESTful API,然后它会自动生成一篇排版优美的API文档,并且提供实时预览。
spirngmv 整合swagger
其实这个整合例子甚多,可以选择的使用。
推荐:官方的说明文档,虽是英文但是各个配置含义说明的很清楚建议使用,后期的优化内容根据这个执行的。
导入基本步骤:
1、修改pom.xml;添加如下swagger的依赖
<!-- 构建Restful API -->
<dependency><groupId>io.springfox</groupId><artifactId>springfox-swagger2</artifactId><version>2.4.0</version>
</dependency>
<dependency><groupId>io.springfox</groupId><artifactId>springfox-swagger-ui</artifactId><version>2.4.0</version>
</dependency>
复制代码
2、添加如下的配置类 注意如下不是必要的步骤(swagger会使用默认配置)
package com.weir.utils;import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.EnableWebMvc;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurationSupport;
import springfox.documentation.builders.ApiInfoBuilder;
import springfox.documentation.builders.PathSelectors;
import springfox.documentation.builders.RequestHandlerSelectors;
import springfox.documentation.service.ApiInfo;
import springfox.documentation.service.Contact;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;
import springfox.documentation.swagger2.annotations.EnableSwagger2;@Configuration
@EnableSwagger2
@EnableWebMvc
@ComponentScan(basePackages ="com.weir")
class ApiConfig extends WebMvcConfigurationSupport {@Beanpublic Docket api() {return new Docket(DocumentationType.SWAGGER_2).select().apis(RequestHandlerSelectors.basePackage("com.weir")).paths(PathSelectors.any()).build().apiInfo(apiInfo());}private ApiInfo apiInfo() {return new ApiInfoBuilder().title("接口列表 v1.1.0") // 任意,请稍微规范点.description("接口测试") // 任意,请稍微规范点.termsOfServiceUrl("http://localhost:8080/swagger-ui.html") // 将“url”换成自己的ip:port.version("1.1.0").build();}
}
复制代码
3、修改springmvc.xml文件;添加关于swagger的配置,内容如下:
<mvc:default-servlet-handler />
<!-- 配置Swagger相关静态资源 -->
<mvc:resources location="classpath:/META-INF/resources/" mapping="swagger-ui.html"/>
<mvc:resources location="classpath:/META-INF/resources/webjars/" mapping="/webjars/**"/>
<!-- 添加扫描配置类 -->
<bean class="com.weir.utils.ApiConfig" />
复制代码
4、代码中的使用:
@RequestMapping(value = "/login")
@ApiOperation(value = "用户登录", notes = "用户登录操作")
@ApiImplicitParam(name = "id", value = "用户ID", required = true, dataType = "Long")
@ResponseBody
public ServerResponse<User> login(String userName, String password, HttpSession session){ServerResponse<User> response = userService.login (userName, password);if (response.isSuccess ()){session.setAttribute ("user",response);}return response;
}
复制代码
5、运行显示
导入遇到问题记录:
最重要的内容:(自己爬坑的内容)【一定要注意】
1、控制台报错内容:Getting HTTP 404 error on /swagger-ui.html but other swagger endpoint works
拦截路径改为/
,不要配置成后缀的,例如:/*.do
等,这会导致,wagger-ui.html
页面被拦截,无法加载。
<!-- dispatcherServlet -->
<servlet>
<servlet-name>dispatcherServlet</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param><param-name>contextConfigLocation</param-name><param-value>classpath:springmvc.xml</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>dispatcherServlet</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
复制代码
当然如果你要配置成带有后缀的也是可以的,请参考如下内容:
- 解决的关键参考页面 [github的issue]
- 关于配置成为的后缀的方式解决官方文档
总结:
- 他人博文只是具有参考意义,尽量参考官方说明文档,弄懂原理是关键
- 推荐官方文档,中文文档和博客参差不齐
- 不要位畏惧英文文档和资料
03、Swagger2和Springmvc整合详细记录(爬坑记录)相关推荐
- mybatis-generator 详细配置及使用,爬坑记录
mybatis-generator 详细配置及使用,爬坑记录 提示:如果不成功一定是项目路径和 数据库配置出问题,本篇基于 MySQL 8.0.13,调试没有问题. 如果失败,建议使用相同的项目结构, ...
- centos7安装mysql日志空白_centos7安装Mysql爬坑记录 - G
centos7安装Mysql爬坑记录 查看是否已安装 使用下列命令查看是否已经安装过mysql/mariadb/PostgreSQL 如果未安装,不返回任何结果(ECS的centos镜像默认未安装任何 ...
- kotlin与java混合开发_使用kotlin和Java混合开发Android项目爬坑记录
使用kotlin和Java混合开发Android项目爬坑记录 不定期将开发过程中遇到的问题添加在此处,加深记忆. 主要内容包括但不限于java与kotlin语言的一些区别,以及在使用android-s ...
- centos7 安装mysql8_CentOS7中安装MySQL8.0.21爬坑记录
在CentOS7.3中安装了MySQL8.0.21之后,就开启了一段漫长的爬坑历程,简要回顾如下: 一.从Win10中用Navicat连接安装好的MySQL服务器 出现如下异常:1045 - Acce ...
- win10 系统下安装ubuntu实现双系统爬坑记录
谨以此教程纪念一下自己的爬坑之旅,如有问题,敬请大神指正; 不同电脑的配置和环境不同,本博客提供的方法仅供参考! 首先呢,基于想要在电脑上装一个实体Linux系统的夙愿,找了很多教程,得知个人电脑比较 ...
- ubuntu20安装gdb插件gef的爬坑记录
0x00 环境 ubuntu20.04.2.0 0x01 踩坑过程 1.按照官网教程安装 官网地址:https://github.com/hugsy/gef 按照官网提示安装,wget报TLS连接错误 ...
- iOS学习爬坑记录18:ios获得设备cpu类型
经测试能够使用,为防止以后有这种需求,在这里记录. 在模拟器上测试打印信息是CPU_TYPE_X86 在5s上测试打印信息是CPU_TYPE_ARM64 另外,记得添加头文件 #include < ...
- QML的import目录爬坑记录
为什么80%的码农都做不了架构师?>>> 默认添加在.qrc文件里的同目录下qml文件,不需要添加import声明: 想导入自定义的组件: //只需要import到目录即可, ...
- flutter小说阅读页之爬坑记录-半角转全角字符
最近在做一个小说app,然而昨天在做阅读页时遇到了一个奇葩的坑. ### 半角转全角 既然是阅读页嘛,要等宽才好看嘛,那就安排! 首先必须是全部字符转换为全角啦,于是就顺手写了下面这些代码.这不是so ...
最新文章
- 《浪潮之巅》作者吴军最新演讲:超级人工智能
- 记录一次centos的双网卡绑定
- 九月腾讯,创新工场,淘宝等公司最新面试三十题(更新至10.04)
- 主席树【bzoj3524(p3567)】[POI2014]Couriers
- python调用接口获取数据_python:接口间数据传递与调用方法
- python sorted下标_初学者掌握python 列表需要知道的操作
- Spring学习笔记(四)
- WCF分布式开发常见错误(17):无法启动MSMQ服务
- 3.以每行一个单词的形式打印其输入
- 如何搜mac_今日头条号权重怎么查?如何提高头条号权重?看完这篇你就懂了
- D2 日报 2019年 03月 12日
- 打开浏览器标签页并修改内容_解决因Bing导致Chrome打开标签页光标失焦的问题...
- python卡通滤镜_用Python实现Instagram滤镜,变成百变女神!
- 如何安装uclient_uclient软件
- corpus iweb_BYU-Corpus杨百翰大学英语语料系列数据库(BYU)
- teamtalk mysql.h_TeamTalk安装测试
- ArcGIS基本操作
- 识别中文_关于开展中文语音识别和语音合成基础服务可信评估的通知
- html防止浏览器表单自动填充,禁止浏览器input表单自动填充
- 3D Max中布尔运算介绍