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