目前在做前后台分离项目的后台接口部分,故在springboot中引入了swaggerui来做restful接口测试。本文首先描述springboot集成swaggerui的过程,其次,讲述本人在集成过程中遇到的问题及解决方案。

一、springboot集成swaggerui

(1)pom文件中添加依赖

<!-- swaggerui相关依赖 --><dependency><groupId>io.springfox</groupId><artifactId>springfox-swagger2</artifactId><version>2.7.0</version></dependency><dependency><groupId>io.springfox</groupId><artifactId>springfox-swagger-ui</artifactId><version>2.7.0</version></dependency>

(2)添加swaggerui配置类

package com.janis;import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
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
public class SwaggerConfig {@Beanpublic Docket createRestApi() {return new Docket(DocumentationType.SWAGGER_2).apiInfo(apiInfo()).select().apis(RequestHandlerSelectors.basePackage("com.janis.controller")).paths(PathSelectors.any()).build();}private ApiInfo apiInfo() { return new ApiInfoBuilder().title("janis Manage Swagger RESTful APIs").description("综合管理 Swagger API 服务").termsOfServiceUrl("http://swagger.io/").contact(new Contact("janis", "127.0.0.1", "janis@163.com.cn")).version("1.0").build();}}

(3)在controller中添加swaggerui接口注解

@Api(value = "检查模板操作", description = "检查模板操作")
@Controller
@RequestMapping("/CheckTemplate")
public class CheckTemplateController {//类上添加注解                                                                                 
        //方法上添加注解                                                                                                                @ApiOperation(value = "查询检查模板主要信息")@RequestMapping(value = "/queryCheckTemplate/{pageNum},{pageSize}", method = RequestMethod.GET)@ResponseBodypublic CommonResponse<List<Checktemplate>> queryCheckTemplate(@ApiParam(name = "pageNum", value = "当前页数") @RequestParam(value = "pageNum", required = false, defaultValue = "1") int pageNum,@ApiParam(name = "pageSize", value = "每页数据量") @RequestParam(value = "pageSize", required = false, defaultValue = "1") int pageSize) {logger.info("查询检查模板主要信息");// 设置分页信息,分别是当前页数和每页显示的总记录数,一般在service冷处理PageHelper.startPage(pageNum, pageSize);CommonResponse<List<Checktemplate>> response = new CommonResponse<>(ResponseResultEnum.SUCCESS, "查询检查模板主要信息成功");try {response = checkTemplateService.queryCheckTemplate();} catch (Exception e) {response.setStatus(ResponseResultEnum.EXCEPTION);response.setException(ExceptionEnum.EXCEPTION_SYS);response.setMessage("查询检查模板主信息失败");logger.error("查询检查模板主要信息失败|{}", e.getMessage(), e);return response;}return response;}

常用swaggerui注解:

- @Api()用于类;
          表示标识这个类是swagger的资源
- @ApiOperation()用于方法;
            表示一个http请求的操作
- @ApiParam()用于方法,参数,字段说明;
             表示对参数的添加元数据(说明或是否必填等)
- @ApiModel()用于类
               表示对类进行说明,用于参数用实体类接收
- @ApiModelProperty()用于方法,字段
            表示对model属性的说明或者数据操作更改
- @ApiIgnore()用于类,方法,方法参数
          表示这个方法或者类被忽略
- @ApiImplicitParam() 用于方法
          表示单独的请求参数
- @ApiImplicitParams()  用于方法,包含多个 @ApiImplicitParam

(4)本地访问swaggerui。地址:http://localhost/swagger-ui.html

二、问题及解决方案

(1)本地访问时404

原因:springboot配置文件中设置了资源包路径:spring.resources.staticLocations=classpath:/res/

将此配置注释即可。若仍旧访问404,手动添加资源加载类:

package com.janis;import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;//@Configuration
//@EnableWebMvc
public class WebMvcConfig extends WebMvcConfigurerAdapter {@Overridepublic void addResourceHandlers(ResourceHandlerRegistry registry) {registry.addResourceHandler("/static/**").addResourceLocations("classpath:/static/");registry.addResourceHandler("swagger-ui.html").addResourceLocations("classpath:/META-INF/resources/");registry.addResourceHandler("/webjars/**").addResourceLocations("classpath:/META-INF/resources/webjars/");}
}

(2)访问成功,但是页面无内容

原因:浏览器版本问题,浏览器不兼容。更换浏览器或者升级浏览器即可。目前发现IE8不兼容

参考文献:https://blog.csdn.net/u014231523/article/details/76522486

SpringBoot集成Swaggerui及问题解决相关推荐

  1. SpringBoot集成swagger-ui以及swagger分组显示

    文章目录 1.swagger配置类 2.使用swagger 3.额外的学习经历 大家好,这篇文章展示下如何在springboot项目中集成swagger-ui.有人说,这都是老生常谈,网上的例子数不胜 ...

  2. SpringBoot集成SwaggerUI

    1.SwaggerUI的简单介绍 Swagger是一个Restful风格接口的文档在线自动生成和测试的框架 官网:http://swagger.io 官方描述:The World's Most Pop ...

  3. 五:Java+SpringBoot集成SwaggerUI

    1.SwaggerUI的简单介绍 Swagger是一个Restful风格接口的文档在线自动生成和测试的框架 官网:http://swagger.io 官方描述:The World's Most Pop ...

  4. SpringBoot集成SwaggerUI及其使用

    撸了今年阿里.头条和美团的面试,我有一个重要发现.......>>> 本文永久更新地址:https://my.oschina.net/bysu/blog/3092623 推荐一款免费 ...

  5. SpringBoot教程(十六) | SpringBoot集成swagger(全网最全)

    一. 接口文档概述 swagger是当下比较流行的实时接口文文档生成工具.接口文档是当前前后端分离项目中必不可少的工具,在前后端开发之前,后端要先出接口文档,前端根据接口文档来进行项目的开发,双方开发 ...

  6. springboot集成swagger2页面出现swagger-resources404

    springboot集成swagger2页面出现swagger-resources404 问题描述 访问/doc.html出现页面,但是没有接口文档,查看页面元素发现问题: /swagger-reso ...

  7. dubbo web工程示例_dubbo实战之二:与SpringBoot集成

    欢迎访问我的GitHub https://github.com/zq2599/blog_demos 内容:所有原创文章分类和汇总,及配套源码,涉及Java.Docker.Kubernetes.DevO ...

  8. 13.9 SpringBoot集成Swagger2中遇到的问题

    13.9 SpringBoot集成Swagger2中遇到的问题 我们在使用SpringBoot集成Swagger2中,访问:http://127.0.0.1:8188/swagger-ui.html ...

  9. springboot集成swagger2构建RESTful API文档

    在开发过程中,有时候我们需要不停的测试接口,自测,或者交由测试测试接口,我们需要构建一个文档,都是单独写,太麻烦了,现在使用springboot集成swagger2来构建RESTful API文档,可 ...

最新文章

  1. 【置顶】利用 NLP 技术做简单数据可视化分析教程(实战)
  2. Android 动态广播与静态广播
  3. 使用Netty实现的一个简单HTTP服务器
  4. 画出降维后的图片_有没有人能画出《三体》里太阳系被二维化的概念图?
  5. [unreal4入门系列之十五] UE4中的动态数组:TArray容器
  6. python符号运算_用Python做科学计算-SymPy符号运算
  7. php 二维数组去重
  8. emacs .emacs_谁在乎Emacs?
  9. 华为苏州人工智能研发基地揭牌 将容纳上万名工作人员
  10. 为什么css导航右边有黑色,一段CSS的导航菜单,为什么有了这个左导航之后,右面的区域用不了了...
  11. 在家办公,我比上班还累你信吗?
  12. [死亡笔记]某傻逼的错误实况
  13. axure 2021.04.26
  14. Linux内核编程11期:设备树(device tree)
  15. 计算机一级考试搜题app,计算机一级考试题库答案,哪个搜题软件能找到?
  16. HiC软件安装篇之Lachesis
  17. Matlab 曲线拟合之polyfit与polyval函数
  18. java.io.FileNotFoundException: /storage/emulated/0/Pictures/QQ/video.mp4: open failed: EACCES (Permi
  19. 在excel中如何筛选重复数据_如何将Excel表中重复数据筛选出来?
  20. 旺谷图控与QT集成开发

热门文章

  1. 深夜分享建站过程---我的启示录
  2. 看完这篇文章,让你彻底理解事务隔离级别(读未提交、读已提交、可重复读、序列化)
  3. android 系统时间改变颜色吗,安卓手机通知栏时间、日期、通知颜色修改教程
  4. Nature:环境因素塑造了荷兰人的肠道微生物组
  5. vostro3470装win7_戴尔(dell)成就3470台式机装win7系统及bios设置(支持
  6. 完蛋,领导买了套《资治通鉴》
  7. DeepLink的使用及任务栈问题
  8. 惠普4410s电脑关机关不了
  9. select和epoll的区别详解
  10. kali局域网常用攻击命令