SpringBoot2.6.x及以上版本整合swagger文件

yfwei發表於2023-02-26

SpringBoot的版本更新中引入了一些新的特性,並且Swagger的版本更新也同樣引入了很多新的東西,這樣就造成了許多配置無法實現一一對應的情況,因此高版本的SpringBoot整合Swagger需要新增一些額外的配置。

1、新增依賴

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

2、新增配置類

為了程式碼結構清晰,可以新建一個config包用於存放當前以及之後可能有的所有的配置類資訊。

配置資訊部分,可以根據專案的實際需求選擇攔截不同路徑下的api請求

@Configuration
public class SwaggerConfig {
    @Bean
    public Docket docket() {
        // 採用stream流的方式將相關的配置一一寫入,該配置為攔截所有路徑下的所有api請求
        return new Docket(DocumentationType.OAS_30)
                .apiInfo(apiInfo())
                .select()
                .apis(RequestHandlerSelectors.any())
                .paths(PathSelectors.any())
                .build();
    }

    private ApiInfo apiInfo() {
        return new ApiInfoBuilder().build();
    }
}

3、新增配置

SpringBoot2.6.x之後的版本的預設匹配策略為path-pattern-matcher,需要手動修改path-pattern-matcher規則,否則會報錯

# 修改swagger的路徑匹配配置,使其相容新版的SpringBoot
spring:
  mvc:
    pathmatch:
      matching-strategy: ant_path_matcher

4、頁面測試

訪問如下連結即可看到swagger整合後的結果(注意修改埠號)

http://localhost:8080/swagger-ui/index.html

相關文章