时间 内容 备注
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整合详细记录(爬坑记录)相关推荐

  1. mybatis-generator 详细配置及使用,爬坑记录

    mybatis-generator 详细配置及使用,爬坑记录 提示:如果不成功一定是项目路径和 数据库配置出问题,本篇基于 MySQL 8.0.13,调试没有问题. 如果失败,建议使用相同的项目结构, ...

  2. centos7安装mysql日志空白_centos7安装Mysql爬坑记录 - G

    centos7安装Mysql爬坑记录 查看是否已安装 使用下列命令查看是否已经安装过mysql/mariadb/PostgreSQL 如果未安装,不返回任何结果(ECS的centos镜像默认未安装任何 ...

  3. kotlin与java混合开发_使用kotlin和Java混合开发Android项目爬坑记录

    使用kotlin和Java混合开发Android项目爬坑记录 不定期将开发过程中遇到的问题添加在此处,加深记忆. 主要内容包括但不限于java与kotlin语言的一些区别,以及在使用android-s ...

  4. centos7 安装mysql8_CentOS7中安装MySQL8.0.21爬坑记录

    在CentOS7.3中安装了MySQL8.0.21之后,就开启了一段漫长的爬坑历程,简要回顾如下: 一.从Win10中用Navicat连接安装好的MySQL服务器 出现如下异常:1045 - Acce ...

  5. win10 系统下安装ubuntu实现双系统爬坑记录

    谨以此教程纪念一下自己的爬坑之旅,如有问题,敬请大神指正; 不同电脑的配置和环境不同,本博客提供的方法仅供参考! 首先呢,基于想要在电脑上装一个实体Linux系统的夙愿,找了很多教程,得知个人电脑比较 ...

  6. ubuntu20安装gdb插件gef的爬坑记录

    0x00 环境 ubuntu20.04.2.0 0x01 踩坑过程 1.按照官网教程安装 官网地址:https://github.com/hugsy/gef 按照官网提示安装,wget报TLS连接错误 ...

  7. iOS学习爬坑记录18:ios获得设备cpu类型

    经测试能够使用,为防止以后有这种需求,在这里记录. 在模拟器上测试打印信息是CPU_TYPE_X86 在5s上测试打印信息是CPU_TYPE_ARM64 另外,记得添加头文件 #include < ...

  8. QML的import目录爬坑记录

    为什么80%的码农都做不了架构师?>>>    默认添加在.qrc文件里的同目录下qml文件,不需要添加import声明: 想导入自定义的组件: //只需要import到目录即可, ...

  9. flutter小说阅读页之爬坑记录-半角转全角字符

    最近在做一个小说app,然而昨天在做阅读页时遇到了一个奇葩的坑. ### 半角转全角 既然是阅读页嘛,要等宽才好看嘛,那就安排! 首先必须是全部字符转换为全角啦,于是就顺手写了下面这些代码.这不是so ...

最新文章

  1. 《浪潮之巅》作者吴军最新演讲:超级人工智能
  2. 记录一次centos的双网卡绑定
  3. 九月腾讯,创新工场,淘宝等公司最新面试三十题(更新至10.04)
  4. 主席树【bzoj3524(p3567)】[POI2014]Couriers
  5. python调用接口获取数据_python:接口间数据传递与调用方法
  6. python sorted下标_初学者掌握python 列表需要知道的操作
  7. Spring学习笔记(四)
  8. WCF分布式开发常见错误(17):无法启动MSMQ服务
  9. 3.以每行一个单词的形式打印其输入
  10. 如何搜mac_今日头条号权重怎么查?如何提高头条号权重?看完这篇你就懂了
  11. D2 日报 2019年 03月 12日
  12. 打开浏览器标签页并修改内容_解决因Bing导致Chrome打开标签页光标失焦的问题...
  13. python卡通滤镜_用Python实现Instagram滤镜,变成百变女神!
  14. 如何安装uclient_uclient软件
  15. corpus iweb_BYU-Corpus杨百翰大学英语语料系列数据库(BYU)
  16. teamtalk mysql.h_TeamTalk安装测试
  17. ArcGIS基本操作
  18. 识别中文_关于开展中文语音识别和语音合成基础服务可信评估的通知
  19. html防止浏览器表单自动填充,禁止浏览器input表单自动填充
  20. 3D Max中布尔运算介绍

热门文章

  1. CopyFile and Directory By channel
  2. pythonGB2312乱码问题
  3. UA MATH571A 多元线性回归II 变量选择
  4. FreeBSD学习总结
  5. RSA加密算法原理和java简单实现
  6. Java虚拟机类装载的原理及实现
  7. Shell第三篇:基本语法
  8. Linux培训教程 Git在linux下的使用
  9. 安装32位mysql报错_在CentOS中安装32位或64位MySql报错error: Failed dependencies解决办法...
  10. php饼图只有一个小方块_如何做出PHP数据饼图