IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Java知识库 -> SpringBoot集成swagger -> 正文阅读

[Java知识库]SpringBoot集成swagger

Swagger 是一款RESTFUL接口的、基于YAML、JSON语言的文档在线自动生成、代码自动生成的工具。
官网地址:swagger.io

SpringBoot集成swagger

swagger有swagger2和swagger3两个版本,两个版本引入的依赖不同,展示的UI界面也不同,本文以swagger2为例。

  1. 引入swagger依赖
<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>
  1. 新建config类
    新建一个swagger的配置类,在该类上使用注解@EnableSwagger2即可开启swagger,此注解也可放在服务启动类上;
@Configuration
@EnableSwagger2
public class Swagger2Config {

    @Bean
    public Docket createRestApi() {
        return new Docket(DocumentationType.SWAGGER_2).apiInfo(apiInfo()).select().apis(RequestHandlerSelectors.
                basePackage("com.test.manager.controller")).paths(PathSelectors.any()).build();
    }

    private ApiInfo apiInfo() {
        return new ApiInfoBuilder().title("Manage Swagger").description("管理系统OpenAPI").version("1.0").build();
    }
}
  1. 添加API接口说明
    swagger api所使用到的注解及其作用如下所示。
注解使用位置作用
@Api(tags = {“用户接口”})controller类接口分组说明
@ApiOperation(“更新用户启停状态”)请求接口方法方法作用说明
@ApiParam(“用户ID”)针对方法的单个参数参数说明
@ApiModel针对方法的实体参数,在实体类上增加此注解实体说明
@ApiModelProperty(“主键ID”)实体类的属性属性字段作用说明
  1. UI优化
    swagger默认的UI不太符合大家的使用习惯,网上有一个优化swagger UI的开源项目,优化后的页面与postman类似。此项目GitHub开源地址:swagger-bootstrap-ui
    只需要引入一个依赖即可优化界面:
<dependency>
    <groupId>com.github.xiaoymin</groupId>
    <artifactId>swagger-bootstrap-ui</artifactId>
    <version>1.9.6</version>
</dependency>

或者引入新版本的knife4j:

<dependency>
    <groupId>com.github.xiaoymin</groupId>
    <artifactId>knife4j-spring-boot-starter</artifactId>
    <version>${knife4j.version}</version>
</dependency>

优化前swagger访问地址:http://ip:port/swagger-ui.html#/
优化后swagger访问地址:http://ip:port/doc.html#/

  1. 部署不同环境如何关闭swagger
    针对prod生产环境如何关闭swagger api访问呢?
  • 方法一:可以使用注解@Profile判断配置文件,如果不是prod则启用,否则默认启用swagger,代码如下。
@Configuration
@EnableSwagger2
@Profile("!prod")
public class Swagger2Config {
    ...
}
  • 方法二:在config类配置注解@ConditionalOnProperty
@ConditionalOnProperty(name = "swagger.enable", havingValue = "true")

在prod yaml配置文件中增加swagger开关,当值为true时为开启。

swagger:
  enable: false
  Java知识库 最新文章
计算距离春节还有多长时间
系统开发系列 之WebService(spring框架+ma
springBoot+Cache(自定义有效时间配置)
SpringBoot整合mybatis实现增删改查、分页查
spring教程
SpringBoot+Vue实现美食交流网站的设计与实
虚拟机内存结构以及虚拟机中销毁和新建对象
SpringMVC---原理
小李同学: Java如何按多个字段分组
打印票据--java
上一篇文章      下一篇文章      查看所有文章
加:2022-06-29 18:51:47  更:2022-06-29 18:54:31 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年4日历 -2024/4/18 16:10:17-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码