springboot3整合swagger

一、遇到问题

关于Swagger与Spring Boot 3的兼容性问题,从目前的信息和参考文章中可以看出,存在一些兼容性的挑战。

1.swagger2

直接兼容性:由于Swagger2并未针对Spring Boot 3进行专门的设计和优化,因此在默认情况下,Swagger2与Spring Boot 3可能不兼容

不兼容的原因:Spring Boot 3带来了许多新的特性和改动,特别是与Spring MVC的路径匹配策略有关。Spring MVC在Spring Boot 3中将默认的路径匹配策略MatchingStrategy.ANT_PATH_MATCHER替换为了MatchingStrategy.PATH_PATTERN_PARSER。这可能导致Swagger2在解析和生成API文档时出现问题。

2.swagger3

Swagger停更问题:Swagger本身已经停更,这可能导致其对新版本的Spring Boot框架支持不足。参考文章3中提到了这个问题,指出Swagger的默认配置可能与高版本的Spring Boot不兼容。

版本冲突:Swagger3与Spring Boot结合时会遇到的问题。这些问题可能表现为运行时错误,例如"Failed to start bean 'documentationPluginsBootstrapper'"等。

直接兼容性:由于Swagger2并未针对Spring Boot 3进行专门的设计和优化,因此在默认情况下,Swagger2与Spring Boot 3可

不兼容原因:Spring Boot 3带来了许多新的特性和改动,特别是与Spring MVC的路径匹配策略有关。如参考文章3所述,Spring MVC在Spring Boot 3中将默认的路径匹配策略从MatchingStrategy.ANT_PATH_MATCHER替换为了MatchingStrategy.PATH_PATTERN_PARSER。这可能导致Swagger2在解析和生成API文档时出现问题。

        <!-- swagger -->
        <dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-spring-web</artifactId>
            <version>2.9.2</version>
        </dependency>
        <dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-swagger2</artifactId>
            <version>2.9.2</version>
        </dependency>
        <dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-swagger-ui</artifactId>
            <version>2.9.2</version>
        </dependency>

在springboot3中使用以上依赖会导致兼容问题。

二、解决方法

对于Spring Boot 3如何使用Swagger,考虑到Swagger2Spring Boot 3的潜在兼容性问题,推荐使用springdoc-openapi作为替代方案,因为它基于OpenAPI 3,并且与Spring Boot 3有更好的兼容性。

OpenAPI 3 Library for spring-boot (springdoc.org)springdoc-openapi官方文档

以下是使用springdoc-openapi的步骤:

1.添加以下依赖

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
            <version>3.0.2</version>
        </dependency>
 
        <dependency>
          <groupId>org.springdoc</groupId>
          <artifactId>springdoc-openapi-starter-webmvc-ui</artifactId>
          <version>2.5.0</version>
       </dependency>

2.编写配置类 

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import io.swagger.v3.oas.models.ExternalDocumentation;
import io.swagger.v3.oas.models.OpenAPI;
import io.swagger.v3.oas.models.info.Info;
import io.swagger.v3.oas.models.info.License;

@Configuration
public class SwaggerConfig {

    @Bean
    public OpenAPI springShopOpenAPI() {
        return new OpenAPI()
                .info(new Info().title("标题")
                        .description("我的API文档")
                        .version("v1")
                        .license(new License().name("Apache 2.0").url("http://springdoc.org")))
                .externalDocs(new ExternalDocumentation()
                        .description("外部文档")
                        .url("https://springshop.wiki.github.org/docs"));
    }

}

3.启动springboot进入以下路径 

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

  • 4
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值