溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

spring boot中怎么整合swagger-ui

發(fā)布時間:2021-06-17 14:21:02 來源:億速云 閱讀:156 作者:Leah 欄目:編程語言

這篇文章將為大家詳細講解有關(guān)spring boot中怎么整合swagger-ui,文章內(nèi)容質(zhì)量較高,因此小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關(guān)知識有一定的了解。

1.添加mvn依賴

修改pom.xml加入

<dependency>
  <groupId>io.springfox</groupId>
  <artifactId>springfox-swagger2</artifactId>
  <version>2.5.0</version>
</dependency>
<dependency>
  <groupId>io.springfox</groupId>
  <artifactId>springfox-swagger-ui</artifactId>
  <version>2.5.0</version>
</dependency>

2.創(chuàng)建配置類

在Application.java同級創(chuàng)建Swagger2的配置類Swagger2

package com.tydt.decision;

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 Swagger2{
  @Bean
  public Docket createRestApi() {
    return new Docket(DocumentationType.SWAGGER_2).apiInfo(apiInfo())
        .select()
        .apis(RequestHandlerSelectors.basePackage("com.tydt.decision.controller"))
        .paths(PathSelectors.any()).build();
  }

  private ApiInfo apiInfo() {
    return new ApiInfoBuilder().title("Decision Manage Swagger RESTful APIs")
        .description("Decision API")
        .termsOfServiceUrl("http://swagger.io/")
        .contact(new Contact("Beibei", "127.0.0.1", "XXXXXXX@qq.com"))
        .version("1.0")
        .build();

  }

}

注:

如果出現(xiàn)下面情況

spring boot中怎么整合swagger-ui

引入需要的包

spring boot中怎么整合swagger-ui

但是啟動時又出現(xiàn)Error creating bean with name 'apiDocumentationScanner' defined in URL

這是由于swagger依賴google的guava,需要添加依賴,而當(dāng)前項目的guava版本與之不匹配,修改為

<dependency>
  <groupId>com.google.guava</groupId>
  <artifactId>guava</artifactId>
  <version>15.0</version>
</dependency>

http://localhost:8090/swagger-ui.html頁面沒顯示

這是因為Spring Boot自動配置本身不會自動把/swagger-ui.html這個路徑映射到對應(yīng)的目錄META-INF/resources/下面。加上這個映射即可

@Configuration
public class WebMvcConfig implements WebMvcConfigurer {
  
  ……
  public void addResourceHandlers(ResourceHandlerRegistry registry) {
    registry.addResourceHandler("swagger-ui.html")
        .addResourceLocations("classpath:/META-INF/resources/");
    registry.addResourceHandler("/webjars/**")
        .addResourceLocations("classpath:/META-INF/resources/webjars/");

  }
}

解決了上面出現(xiàn)的問題,訪問http://localhost:8090/swagger-ui.html就能看到下面的頁面了

spring boot中怎么整合swagger-ui

說明:

(1)通過@Configuration注解,讓Spring來加載該類配置

(2)再通過@EnableSwagger2注解來啟用Swagger2

(3)通過createRestApi函數(shù)創(chuàng)建Docket的Bean之后,apiInfo()用來創(chuàng)建該Api的基本信息

(4)select()函數(shù)返回一個ApiSelectorBuilder實例用來控制哪些接口暴露給Swagger來展現(xiàn)

(5)指定掃描的包路徑來定義,會掃描該包下所有Controller定義的API,并產(chǎn)生文檔內(nèi)容,除了用@ApiIgnore指定的

(6)通過@ApiOperation注解來給API增加說明

(7)通過@ApiImplicitParams

(8)@ApiImplicitParam注解來給參數(shù)增加說明

關(guān)于spring boot中怎么整合swagger-ui就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,可以學(xué)到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

向AI問一下細節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI