说明:本文写作目的单纯是记录一次项目搭建,以便于以后查看。
开发工具:IDEA;操作系统:MacOS

文章目录

  • 前言
  • 一、引入依赖
  • 二、修改配置文件
  • 三.Docket编写
  • 遇到的问题

前言

Swagger2 是为了方便生产中生成统一标准规范的API文档生成工具。既方便开发团队成员查看,也方便最后接口文档的生成。本文仅记录本人如何搭建,具体对于swagger的介绍网上有很多相关文章供学习参考。


一、引入依赖

我是spring cloud 的项目架构,在我common模块的pom文件中加入swagger的依赖,我其他的服务模块都会引入common模块,所以swagger的功能也会被其他服务模块给使用。
我使用的是3.0.0的版本,所以不需要引入springfox-swagger2和swagger2-ui,直接引入springfox-boot-starter即可

<!-- swager2 -->
<dependency><groupId>io.springfox</groupId><artifactId>springfox-boot-starter</artifactId><version>3.0.0</version>
</dependency>

二、修改配置文件

在服务模块的yaml文件中加入以下代码:

swagger:enabled: truetitle: 测试接口description: 描述测试接口version: 1.0.0contact:name: Ryan Renurl: email: xxx@qq.com  package: com.program.test.myTestbase-path: /**exclude-path: /error, /ops/**spring: mvc:pathmatch: # 重要!否则会报错matching-strategy: ant_path_matcher

三.Docket编写

swagger 3.0的版本可以省略很多东西:
移除springfox-swagger2的依赖冲突
移除@EnableSwagger2注解
Docket可省略,也可自行配置
代码如下(示例):

@Configuration
public class SwaggerConfig {@Value(value = "${swagger.enabled}")private boolean swaggerEnabled;@Value(value = "${swagger.title}")private String swaggerTitle;@Value(value = "${swagger.description}")private String swaggerDescription;@Value(value = "${swagger.version}")private String swaggerVersion;@Value(value = "${swagger.package}")private String swaggerPackage;@Value(value = "${swagger.contact.name}")private String swaggerContactName;@Value(value = "${swagger.contact.url}")private String swaggerContactUrl;@Value(value = "${swagger.contact.email}")private String swaggerContactEmail;@Beanpublic Docket docket() {return new Docket(DocumentationType.SWAGGER_2).apiInfo(apiInfo()).enable(swaggerEnabled).select().apis(RequestHandlerSelectors.basePackage(swaggerPackage)).paths(PathSelectors.any()).build();}//构建api文档的详细信息函数private ApiInfo apiInfo() {return new ApiInfoBuilder()//页面标题.title(swaggerTitle)//创建人.contact(new Contact(swaggerContactName, swaggerContactUrl, swaggerContactEmail))//版本号.version(swaggerVersion)//描述.description(swaggerDescription).build();}
}

同时访问网页也发生了变化
http://localhost:port/swagger-ui/index.html


遇到的问题

  1. Failed to start bean ‘documentationPluginsBootstrapper’; nested exception is java.lang.NullPointerException:

问题原因:
SpringBoot更新至2.6.0,引发了这个bug。

解决方法:
在配置文件里加一条spring.mvc.pathmatch.matching-strategy=ant_path_matcher可解决

参考文章:https://www.jianshu.com/p/322f20aef4e1

【swagger2】Spring Boot 配置swagger2相关推荐

  1. 从零搭建一个 Spring Boot 开发环境!Spring Boot+Mybatis+Swagger2 环境搭建

    从零搭建一个 Spring Boot 开发环境!Spring Boot+Mybatis+Swagger2 环境搭建 本文简介 为什么使用Spring Boot 搭建怎样一个环境 开发环境 导入快速启动 ...

  2. Spring Boot 2.X - Spring Boot整合Swagger2(starter方式)

    文章目录 Spring Boot 2.X - Spring Boot整合Swagger2(starter方式) 引入依赖 添加@EnableSwagger2Doc注解 创建实体类 创建Controll ...

  3. Spring Boot 2.0 配置图文教程第 2 章 Spring Boot 配置## 书信息 demo.book.name=[Spring Boot 2.x Core Action] demo.b

    本章内容 1.自定义属性快速入门 2.外化配置 3.自动配置 4.自定义创建 Starter 组件 摘录:读书是读完这些文字还要好好用心去想想,写书也一样,做任何事也一样 第 2 章 Spring B ...

  4. Spring Boot 配置元数据指南

    点击蓝色"程序猿DD"关注我 回复"资源"获取独家整理的学习资料! 作者 | 遗失的拂晓 来源 | 公众号「锅外的大佬」 1. 概览 在编写 Spring Bo ...

  5. java多个数据库数据进行访问_通过Spring Boot配置动态数据源访问多个数据库的实现代码...

    之前写过一篇博客<Spring+Mybatis+Mysql搭建分布式数据库访问框架>描述如何通过Spring+Mybatis配置动态数据源访问多个数据库.但是之前的方案有一些限制(原博客中 ...

  6. Spring Boot 配置随机数那些小技巧

    转载自  Spring Boot 配置随机数那些小技巧 Spring Boot支持在系统加载的时候配置随机数. 添加config/random.properties文件,添加以下内容: #随机32位M ...

  7. 19年8月 字母哥 第三章 spring boot 配置原理实战 用热点公司网不行

    第三章 spring boot 配置原理实战 3.1.结合配置加载讲解bean自动装配原理 3.2.详解YAML语法及占位符语法 3.3.获取自定义配置的两种实现方法 3.4.配置文件注入值数据校验 ...

  8. 在Spring boot 配置过滤器(filter)

    在spring boot 配置servlet filter 逻辑上与配置spring 是一样的. 不过相比spring 更加简化配置的难度. 这里只需要两步 1 创建一个自定义顾虑器并继承spring ...

  9. mysql 多数据源访问_通过Spring Boot配置动态数据源访问多个数据库的实现代码

    之前写过一篇博客<Spring+Mybatis+Mysql搭建分布式数据库访问框架>描述如何通过Spring+Mybatis配置动态数据源访问多个数据库.但是之前的方案有一些限制(原博客中 ...

最新文章

  1. linux内核添加c代码,如何从C代码加载Linux内核模块?
  2. putty 串口登录开发板
  3. linux下mysql授权_linux下mysql命令(用户授权、数据导入导出)
  4. 乐视手机权限开启方法
  5. vue java 使用AES 前后端加密解密
  6. Python爬虫,通过特定的函数来筛选标签
  7. 全球及中国无服务器应用程序行业应用调研与投资前景规划报告2022版
  8. DVWA--文件上传漏洞
  9. store前台数据过滤
  10. 线程间操作无效: 从不是创建控件“button2”的线程访问它
  11. Docker镜像仓库
  12. apscheduler -定时任务
  13. linux程序无法获取cpu资源,Linux系统编程获取系统的CPU资源
  14. 7007.svg用法
  15. sql 存储过程 并发测试_SQL单元测试模拟存储过程
  16. Redis脚本实现分布式锁
  17. 【DA】单侧T检验p值与双侧T检验p值的关系
  18. [附源码]Python计算机毕业设计Django的项目管理系统
  19. 【机器学习】阿里云天池竞赛——工业蒸汽量预测(1)
  20. 地铁译:Spark for python developers --- 搭建Spark虚拟环境1

热门文章

  1. 3月9日——3月13日一年级课程表
  2. 优化Hexo性能,使用hexo-neat插件压缩页面,大幅度提升页面性能和响应速度
  3. 刚子扯谈:标题木有啊
  4. 平面直角坐标系中的旋转公式_定比分点公式及定理
  5. 2015桐庐年会--奔跑吧,骚年
  6. 使用Tomcat插件实现WEB项目热部署
  7. 试述现代计算机系统的多级层次结构,计算机系统结构测验题(一)答案.ppt
  8. ML:机器学习模型提效之监督学习中概率校准的简介、案例应用之详细攻略
  9. windows下MySQL修改root密码
  10. Windows 9操作系统已经开始测试!