Springboot ✚ Swagger各版本整理

2年前 (2022) 程序员胖胖胖虎阿
287 0 0

Springboot ✚ Swagger各版本整理

  • swagger配置变化原因:
  • Swagger版本
    • 1、Swagger 2.x 版本
      • springboot 2.5.6 ✚ swagger 2.6.1~2.9.2配置属下
    • 2、Swagger 3.x 版本
      • springboot 2.5.6 ✚ swagger 3.0.0配置属下
      • springboot 2.6.5 ✚ swagger 3.0.0配置属下
  • Knife4j 版本
    • Knife4j 3.0.3 ✚ Springboot2.7.1

swagger配置变化原因:

  1. 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

Knife4j 3.0.3 增强功能配置

版权声明:程序员胖胖胖虎阿 发表于 2022年9月1日 下午9:40。
转载请注明:Springboot ✚ Swagger各版本整理 | 胖虎的工具箱-编程导航

相关文章

暂无评论

暂无评论...