Springboot Swagger各版本整理
swagger配置变化原因:
-
SpringBoot处理映射匹配的默认策略发生变化
请求路径与 Spring MVC 处理映射匹配的默认策略已从AntPathMatcher更改为PathPatternParser。你可以设置spring.mvc.pathmatch.matching-strategy为ant-path-matcher来改变它。
-
springboot 2.6.0之前
public static class Pathmatch { private MatchingStrategy matchingStrategy = MatchingStrategy.ANT_PATH_MATCHER; }
-
springboot2.6.0之后
public static class Pathmatch { private MatchingStrategy matchingStrategy = MatchingStrategy.PATH_PATTERN_PARSER; }
如果升级springboot到2.6之后,需要设置
spring.mvc.pathmatch.matching-strategy=ant-path-matcher
来兼容Swagger2
2.Swagger升级
Swagger版本
1、Swagger 2.x 版本
swagger
访问路径
3.0.0之前
http://127.0.0.1:8080/swagger-ui.html
3.0.0之后
http://127.0.0.1:8080/swagger-ui/index.html
springboot 2.5.6 swagger 2.6.1~2.9.2配置属下
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.5.6</version>
</parent>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-boot-starter</artifactId>
<version>2.6.1</version> 2.7.0 2.8.0 2.9.2 都可以
</dependency>
只需要在启动类上加 @EnableSwagger2
注解即可
访问地址:http://127.0.0.1:8080/swagger-ui.html
2、Swagger 3.x 版本
springboot 2.5.6 swagger 3.0.0配置属下
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.5.6</version>
</parent>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-boot-starter</artifactId>
<version>3.0.0</version>
</dependency>
只需要在启动类上加 @EnableSwagger2
注解即可
访问地址:http://127.0.0.1:8080/swagger-ui/index.html
springboot 2.6.5 swagger 3.0.0配置属下
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.6.5</version>
</parent>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-boot-starter</artifactId>
<version>3.0.0</version>
</dependency>
application.yml 或applicaiton.properties 中添 必须 加如下配置
spring:
mvc:
pathmatch:
matching-strategy: ant_path_matcher
只需要在启动类上加 @EnableSwagger2
注解即可
访问地址:http://127.0.0.1:8080/swagger-ui/index.html
Knife4j 版本
访问地址:http://127.0.0.1:8080/doc.html,访问方式和之前的保持一致,如果项目中配置拦截器等,需要放开doc.html静态资源
版本
说明
SpringBoot
配置注解
增强功能
1.9.6
蓝色皮肤风格,增加更多后端模块
@EnableSwagger2
不支持
2.0~2.0.5
Ui重写,蓝色背景变成黑色,底层依赖的springfox框架版本是2.9.2
@EnableSwagger2
开启方式@EnableKnife4j
2.0.6~
底层springfox框架版本升级知2.10.5,OpenAPI规范是v2
大于等于2.2.x (2.6.0之后需要需要设置spring.mvc.pathmatch.matching-strategy =ant-path-matcher
)
@EnableSwagger2WebMvc
开启方式knife4j.enable=true
默认不开启
3.0~
底层依赖springfox框架版本升级至3.0.3,OpenAPI规范是v3
大于等于2.2.x(2.6.0之后需要需要设置spring.mvc.pathmatch.matching-strategy =ant-path-matcher
)
写不写都可以
开启方式knife4j.enable=true
默认不开启
Knife4j 3.0.3 Springboot2.7.1
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.7.1</version>
</parent>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-boot-starter</artifactId>
<version>3.0.3</version>
</dependency>
spring:
mvc:
pathmatch:
matching-strategy: ant_path_matcher