SpringBoot3整合Swagger

06-01 1007阅读

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录

  • 前言
  • 一、SpringBoot3整合Swagger3出现的问题
  • 二、openapi3
  • 总结

    前言

    之前一直使用SpringBoot2与Swagger2,所以感觉都很顺利,因网上资源也比较多问题不大。

    但是自从更新idea2024、jdk17之后,很多依赖都是比较新的版本,之前的很多东西需要去适应新版本就会出现很多bug,网上的很多办法不好用,只好在改好bug之后记录一下,以便大家一起学习。


    一、SpringBoot3整合Swagger3出现的问题

    我用的版本是

    SpringBoot:3.4.4

    springfox 引入的依赖:

            
        
            io.springfox
            springfox-boot-starter
            3.0.0
        
    

    yml配置

    #集成Swagger高版本启动异常配置,低版本可以不配置
    spring:
      mvc:
        pathmatch:
          matching-strategy: ANT_PATH_MATCHER

    启动类

    @EnableOpenApi  
    @EnableSwagger2 
    swagger3启动注解

    swagger配置类

    网上有很多自己取,启动成功以后项目启动正常,但是swagger访问页面一直404

    SpringBoot3整合Swagger

    在网上看了很多方法都不可用

    只要是无法加载到swagger-ui的静态资源,页面报错

    SpringBoot3整合Swagger

    项目编译没有问题,但是启动运行的时候报错 javax.servlet.http.HttpServletRequest ClassNotFoundException 异常。

    页面一直循环弹窗。头大~

    这是因为 SpringFox3.0.0 底层有 Swagger2 和 Swagger3 两套依赖,其中 Swagger2 底层依赖 javax 模块,但是在 SpringBoox3 的版本中已经彻底移除了 javax 模块,改为使用 jakarta ,所以才会报这个错误。

    参考:SpringBoot 3.0 升级之 Swagger 升级_spring boot 3使用swagger-CSDN博客

    二、openapi3

    引入依赖

    删除之前的Springfox-3.0.0 添加openAip3依赖:
    
    		
                org.springdoc
                springdoc-openapi-starter-webmvc-ui
                2.0.4
    		

    yml配置

    # swagger-ui custom path
    springdoc:
      api-docs:
        enabled: true # 开启OpenApi接口
      swagger-ui:
        enabled: true # 开启swagger界面,依赖OpenApi,需要OpenApi同时开启
        path: /index.html # 自定义路径,默认为"/swagger-ui/index.html"

     编写Swagger配置类

    @Configuration
    class Swagger2Utils{
        @Bean
        public OpenAPI springOpenAPI() {
            // 访问路径:http://localhost:8015/swagger-ui/index.html
            return new OpenAPI().info(new Info()
                            .title("测试文档")
                            .contact(new Contact())
                            .description("测试专用信息管理平台提供的 RESTful API")
                            .version("v1.0.0")
                            .license(new License().name("测试版本1.0").url("http://springdoc.org")))
                            .externalDocs(new ExternalDocumentation()
                            .description("测试接口外部文档")
                            .url("https://springshop.wiki.github.org/docs"));
        }

    访问成功

    SpringBoot3整合Swagger


    总结

    提示

    参考:Springdoc-OpenAPI 使用教程-CSDN博客

    Spring Boot 3.x 引入springdoc-openapi (内置Swagger UI、webmvc-api)_springdoc-openapi-starter-webmvc-ui-CSDN博客

    Java21 + SpringBoot3整合springdoc-openapi,自动生成在线接口文档,支持SpringSecurity和JWT认证方式 - 程序员偏安 - 博客园 (cnblogs.com)

免责声明:我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理! 图片声明:本站部分配图来自人工智能系统AI生成,觅知网授权图片,PxHere摄影无版权图库和百度,360,搜狗等多加搜索引擎自动关键词搜索配图,如有侵权的图片,请第一时间联系我们。

目录[+]

取消
微信二维码
微信二维码
支付宝二维码