本文测试代码使用 Spring Boot 2.1.6.RELEASE + Swagger 2.9.2

添加依赖

    <dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>2.9.2</version>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<version>2.9.2</version>
</dependency> <dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-rest</artifactId>
</dependency>

添加配置

swagger:
enable: true

添加配置类

@Configuration
@EnableSwagger2 // 启用 Swagger
@ConditionalOnExpression("${swagger.enable:true}") // 根据配置决定是否最终启用 Swagger
public class SwaggerConfig { @Bean
public Docket createRestApi() {
return new Docket(DocumentationType.SWAGGER_2)
.apiInfo(apiInfo())
.select()
.apis(RequestHandlerSelectors.basePackage("com.karonda.springbootswagger.controller"))
.paths(PathSelectors.any())
.build();
} private ApiInfo apiInfo() {
return new ApiInfoBuilder()
.title("SWAGGER 测试平台")
.description("测试 SWAGGER 用")
.termsOfServiceUrl("https://github.com/VictorBu")
.version("1.0.0")
.build();
}
}

添加测试接口

@RestController
@Api(tags = "测试接口")
public class HiController { @RequestMapping(value = "/hi", method = RequestMethod.GET)
@ApiOperation(value="打招呼")
@ApiImplicitParams({
@ApiImplicitParam(name = "firstName", value = "名字", paramType = "query", required = true),
@ApiImplicitParam(name = "lastName", value = "姓氏", paramType = "query", required = true)
})
public String sayHi(@RequestParam("firstName") String firstName, @RequestParam("lastName") String lastName){
return "Hi, " + firstName + " " + lastName;
}
}

测试

启动程序输入 http://localhost:8080/swagger-ui.html 即可看到效果

注意事项

如果在项目中使用了 Spring Security 则需要添加如下配置

http.authorizeRequests()
.antMatchers(
// -- swagger ui
"/v2/api-docs",
"/swagger-resources",
"/swagger-resources/**",
"/configuration/ui",
"/configuration/security",
"/swagger-ui.html",
"/webjars/**").permitAll()
.anyRequest().authenticated();

完整代码:GitHub

—- 2020-06-10 更新开始 —-

最近使用中发现会报错:

No mapping for GET /swagger-ui.html

应该是 Spring Boot 版本问题,修复:

@Configuration
public class WebMvcConfig extends WebMvcConfigurationSupport { @Override
protected void addResourceHandlers(ResourceHandlerRegistry registry) {
registry.addResourceHandler("swagger-ui.html")
.addResourceLocations("classpath:/META-INF/resources/"); registry.addResourceHandler("/webjars/**")
.addResourceLocations("classpath:/META-INF/resources/webjars/");
super.addResourceHandlers(registry);
}
}

参考:swagger报错No handler found for GET /swagger-ui.html

—- 2020-06-10 更新结束 —-

Spring Boot 2 集成 Swagger的更多相关文章

  1. 【Spring Boot&&Spring Cloud系列】Spring Boot项目集成Swagger UI

    前言 Swagger 是一个规范和完整的框架,用于生成.描述.调用和可视化 RESTful 风格的 Web 服务.总体目标是使客户端和文件系统作为服务器以同样的速度来更新.文件的方法,参数和模型紧密集 ...

  2. spring boot.2x 集成swagger 加入拦截器后 swagger不能访问

    忽略掉 swagger-resources下面的请求 以及忽略掉 v2下面的请求即可 转自:https://blog.csdn.net/hanwenyi520/article/details/7989 ...

  3. Spring Boot:集成Druid数据源

    综合概述 数据库连接池负责分配.管理和释放数据库连接,它允许应用程序重复使用一个现有的数据库连接,而不是再重新建立一个:释放空闲时间超过最大空闲时间的数据库连接来避免因为没有释放数据库连接而引起的数据 ...

  4. Java | Spring Boot Swagger2 集成REST ful API 生成接口文档

      Spring Boot Swagger2 集成REST ful API 生成接口文档 原文 简介 由于Spring Boot 的特性,用来开发 REST ful 变得非常容易,并且结合 Swagg ...

  5. Spring Boot:整合Swagger文档

    综合概述 spring-boot作为当前最为流行的Java web开发脚手架,越来越多的开发者选择用其来构建企业级的RESTFul API接口.这些接口不但会服务于传统的web端(b/s),也会服务于 ...

  6. shiro 和 spring boot 的集成

    1 添加依赖 使用 shiro-spring-boot-web-starter 在 spring boot 中集成 shiro 只需要再添加一个依赖 <dependency> <gr ...

  7. Spring Boot快速集成kaptcha生成验证码

    Kaptcha是一个非常实用的验证码生成工具,可以通过配置生成多样化的验证码,以图片的形式显示,从而无法进行复制粘贴:下面将详细介绍下Spring Boot快速集成kaptcha生成验证码的过程. 本 ...

  8. [转帖]spring boot项目集成jacoco

    小试牛刀:spring boot项目集成jacoco 2019-03-28 20:14:36 zyq23333 阅读数 509   版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议, ...

  9. Spring Boot 项目集成 Alibaba Druid

    Druid 是一个非常好用的数据库连接池,但是他的好并不止体现在作为一个连接池加快数据访问性能上和连接管理上,他带有一个强大的监控工具:Druid Monitor.不仅可以监控数据源和慢查询,还可以监 ...

随机推荐

  1. Docker(3)- Centos 7.x 下 Docker 镜像加速配置

    如果你还想从头学起 Docker,可以看看这个系列的文章哦! https://www.cnblogs.com/poloyy/category/1870863.html 前言 默认情况下,Docker ...

  2. 【kata Daily 190905】What's a Perfect Power anyway?(完美幂)

    原题: A perfect power is a classification of positive integers: In mathematics, a perfect power is a p ...

  3. Prometheus安装配置

    一.什么是Prometheus? Prometheus受启发于Google的Brogmon监控系统(相似的Kubernetes是从Google的Brog系统演变而来),从2012年开始由前Google ...

  4. mysql触发

    create procedure agex(in addage1 int,in addage2 int)begindeclare curl_stu_id int; declare curl_stu_s ...

  5. linux下的终端利器----tmux

    转:tmux 是指通过一个终端登录远程主机并运行后,在其中可以开启多个控制台的终端复用软件.类似GNU Screen,但来自于OpenBSD,采用BSD授权.使用它最直观的好处就是,通过一个终端登录远 ...

  6. 17 c10k问题

    所谓c10k问题,指的是服务器同时支持成千上万个客户端的问题,也就是concurrent 10 000 connection(这也是c10k这个名字的由来). 推荐: https://my.oschi ...

  7. Docker学习笔记:Alpine镜像+Python3安装+http服务器

    编写Dockerfile文件使用最新的Alpine镜像并安装Python3环境,如下: 因为python高于3.4则不会默认安装pip,需要手动安装. 试了很多其他办法都没安装上,唯有下载get-pi ...

  8. jdk包结构及用途分析

    Table of Contents 概述 jdk包总览 rt.jar包结构分析 概述 jdk是每一个使用java的人员每一天都在使用的东西,博主也已经研究了jdk源代码中的一些类了,本篇博客是想从jd ...

  9. 手写一个Web服务器,极简版Tomcat

    网络传输是通过遵守HTTP协议的数据格式来传输的. HTTP协议是由标准化组织W3C(World Wide Web Consortium,万维网联盟)和IETF(Internet Engineerin ...

  10. 分布式监控系统之Zabbix基础使用

    前文我们了解了分布式监控系统zabbix的相关组件的作用和zabbix的部署,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/13997582.html:今天我们 ...