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