精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

甩掉 Swagger UI!SpringBoot API 文檔神器強勢登場

開發 后端
過去的 Swagger + SpringFox 方案,在新版本 Spring Boot 中已經力不從心;而 SpringDoc 作為 OpenAPI 3 的原生實現,不僅穩定高效,還能通過最小化配置快速上手,滿足中大型項目的 API 文檔管理需求。

在現代后端開發中,API 文檔已經成為項目協作的基石——它不僅幫助前后端快速對接,也能為運維、測試提供可靠的接口依據。過去,我們在 Spring Boot 項目中常用 Swagger + SpringFox 來生成交互式文檔,但隨著 Spring 版本的升級,這一套組合逐漸顯露疲態:維護停滯、版本不兼容、配置繁瑣…… 如果你還在為升級 Spring Boot 后 Swagger 失效而抓狂,那么今天介紹的 SpringDoc,將是你值得關注的下一代方案——它能在 Spring Boot 3.x + JDK17 環境下穩定運行,原生支持 OpenAPI 3 規范,并且實現了“零配置開箱即用”。

SpringDoc 是什么

SpringDoc 是一款專為 Spring Boot 應用打造的 API 文檔生成工具,它會自動掃描項目中的:

  • 控制器類(@RestController
  • 請求映射(@RequestMapping@GetMapping 等)
  • OpenAPI 3 注解(@Schema@Parameter 等)

然后動態生成 JSON / YAML / HTML 格式的 API 規范文件,并集成交互式的 Swagger UI 頁面,讓開發者直接在瀏覽器中調試接口。

核心能力:

  1. 自動掃描項目 API,無需手寫文檔
  2. 支持最新 OpenAPI 3 規范
  3. 集成 Swagger UI,可直接在線調試
  4. 與 Spring Boot 3.x 完美兼容

它與 Swagger 的關系

要理解 SpringDoc 的優勢,我們先簡單回顧 Swagger 的角色。

  • Swagger 是 OpenAPI 規范的前身,負責推動 API 描述標準化
  • Swagger UI 是它的可視化工具,用于渲染交互式文檔
  • SpringFox 曾是 Spring 生態中連接 Swagger 的橋梁,負責掃描代碼并生成 JSON 格式的 OpenAPI 文檔

在 2020 年以后,SpringFox 停止更新,并且在 Spring Boot 2.6+ / 3.x 中出現大量不兼容問題,比如:

  • 路徑匹配失效
  • 注解沖突
  • 配置異常復雜

于是,SpringDoc 成為了替代者:它直接基于 OpenAPI 3 實現,無需依賴 SpringFox,并且保留了 Swagger UI 的可視化體驗。

為什么選擇 SpringDoc

選擇 SpringDoc 的理由非常直接:

  • 官方持續維護:兼容 Spring Boot 最新版本
  • 配置簡單:引入依賴即可運行
  • 原生 OpenAPI 3 支持:使用 JSR-303 注解替代 Swagger 專用注解
  • 零侵入性:不破壞原有代碼結構
  • 性能穩定:加載速度快,資源占用低

最小化集成步驟

引入依賴

<dependency>
    <groupId>org.springdoc</groupId>
    <artifactId>springdoc-openapi-starter-webmvc-ui</artifactId>
    <version>2.5.0</version>
</dependency>

可選配置(application.yml)

springdoc:
  packages-to-scan: com.icoderoad.controller
  swagger-ui:
    enabled: true
    path: /swagger-ui/index.html
    url: /v3/api-docs
    disable-swagger-default-url: false
  api-docs:
    enabled: true
    path: /api-docs

如果不配置,SpringDoc 會自動掃描全項目的 Controller 類。

基礎信息配置類

package com.icoderoad.config;


import io.swagger.v3.oas.annotations.OpenAPIDefinition;
import io.swagger.v3.oas.annotations.info.Info;
import org.springframework.context.annotation.Configuration;


@Configuration
@OpenAPIDefinition(
    info = @Info(title = "項目 API 文檔", version = "1.0", description = "SpringBoot 項目接口文檔")
)
public class SpringDocConfig {
}

添加注解展示 API 信息

package com.icoderoad.controller;


import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.Parameter;
import io.swagger.v3.oas.annotations.tags.Tag;
import org.springframework.web.bind.annotation.*;


@RestController
@RequestMapping("/main")
@Tag(name = "演示Controller", description = "演示接口")
public class MainController {


    @GetMapping("/index")
    @Operation(summary = "演示方法", description = "接口功能說明")
    public String index(@Parameter(description = "參數1", required = true) String str1) {
        return "請求成功";
    }
}

訪問地址:

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

分組配置

編程式分組

package com.icoderoad.config;


import org.springdoc.core.models.GroupedOpenApi;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;


@Configuration
public class SpringDocGroupConfig {


    @Bean
    public GroupedOpenApi defaultGroup() {
        return GroupedOpenApi.builder().group("默認分組").pathsToMatch("/**").build();
    }


    @Bean
    public GroupedOpenApi productGroup() {
        return GroupedOpenApi.builder().group("商品模塊").pathsToMatch("/api/product/**").build();
    }


    @Bean
    public GroupedOpenApi userGroup() {
        return GroupedOpenApi.builder().group("用戶模塊").packagesToScan("com.icoderoad.controller.member").build();
    }
}

聲明式分組(application.yml)

springdoc:
  group-configs:
    - group: 默認分組
      paths-to-match: "/**"
    - group: 商品模塊
      paths-to-match: "/api/product/**"
    - group: 用戶模塊
      packages-to-scan: "com.icoderoad.controller.member"

特殊場景處理

 WebMvcConfigurer 重寫資源映射

package com.icoderoad.config;


import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.*;


import java.util.concurrent.TimeUnit;


@Configuration
public class ResourcesConfig implements WebMvcConfigurer {
    @Override
    public void addResourceHandlers(ResourceHandlerRegistry registry) {
        registry.addResourceHandler("/swagger-ui/**")
                .addResourceLocations("classpath:/META-INF/resources/webjars/springdoc-openapi-ui/")
                .setCacheControl(org.springframework.http.CacheControl.maxAge(5, TimeUnit.HOURS).cachePublic());
    }
}

Spring Security 放行配置

package com.icoderoad.config;


import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.http.HttpMethod;
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
import org.springframework.security.config.annotation.web.configuration.*;


@Configuration
@EnableWebSecurity
@EnableMethodSecurity
public class SecurityConfig {


    @Bean
    public SecurityFilterChain filterChain(HttpSecurity http) throws Exception {
        http.authorizeHttpRequests(auth -> auth
                .requestMatchers(HttpMethod.OPTIONS, "/**").permitAll()
                .requestMatchers("/swagger-ui/**", "/*/api-docs/**", "/swagger-resources/**", "/webjars/**").permitAll()
                .anyRequest().authenticated()
        );
        return http.build();
    }
}

總結

過去的 Swagger + SpringFox 方案,在新版本 Spring Boot 中已經力不從心;而 SpringDoc 作為 OpenAPI 3 的原生實現,不僅穩定高效,還能通過最小化配置快速上手,滿足中大型項目的 API 文檔管理需求。 如果你想在 Spring Boot 3.x + JDK17+ 環境下擁有一個即插即用、可擴展的 API 文檔工具,那么 SpringDoc 將是你不容錯過的選擇。它讓文檔與代碼同步更新,讓前后端協作更加流暢,讓 API 開發更具現代感。

責任編輯:武曉燕 來源: 路條編程
相關推薦

2023-09-21 10:44:41

Web服務Swagger前端

2025-08-11 09:32:04

2022-02-16 08:21:11

JavaSwagger工具

2020-12-07 06:05:34

apidocyapiknife4j

2015-11-23 18:21:45

Udesk

2025-08-04 02:11:00

2025-02-12 07:13:54

Knife4jAPISpringBoot

2021-05-07 20:27:14

SpringBootSwagger3文檔

2023-10-30 16:00:06

2012-04-18 16:32:43

筆記本評測

2016-09-28 10:24:03

飛魚星

2019-11-15 14:11:05

科達

2021-01-07 07:39:07

工具接口 Swagger

2017-06-20 15:39:58

Koa2 應用動態Swagger文檔

2021-10-15 08:27:14

Kubernetes 工具Mizu

2024-07-22 09:00:00

2024-09-10 08:15:33

Asp項目API

2024-03-01 19:35:54

Mybatis開發
點贊
收藏

51CTO技術棧公眾號

51精品免费网站| 国产精品无码一区二区在线| 亚洲一二区视频| 在线国产一区二区| 亚洲护士老师的毛茸茸最新章节| 欧美日韩在线成人| 怡红院av在线| 久久先锋影音av鲁色资源网| 国产一区玩具在线观看| 日本视频www| 久久一本综合| 日韩精品久久久久久福利| 五月婷婷之婷婷| 一区二区三区短视频| 亚洲欧美偷拍另类a∨色屁股| 国产美女精品久久久| 亚洲专区第一页| 中日韩视频在线观看| 久久偷看各类女兵18女厕嘘嘘| 国产夫妻性爱视频| 国产亚洲观看| 欧美撒尿777hd撒尿| 少妇人妻大乳在线视频| 国产写真视频在线观看| 国产欧美日韩另类视频免费观看| 91丨九色丨国产| 一区二区三区精彩视频| 三级在线观看一区二区| 久久久视频免费观看| 日日噜噜夜夜狠狠久久波多野| 免费成人网www| 日韩成人久久久| 国产精品日日摸夜夜爽| 亚洲日本中文| 欧美久久一二区| 国产自偷自偷免费一区| 岛国av在线播放| 亚洲国产色一区| 国产精品8888| 中文在线字幕免费观看| 中文字幕日韩一区| 亚洲色图自拍| av基地在线| 欧美国产日韩亚洲一区| 欧美日韩成人一区二区三区| 色一情一乱一乱一区91av| 丁香亚洲综合激情啪啪综合| eeuss一区二区三区| 性色av蜜臀av| 国产精品香蕉一区二区三区| 亚洲wwwav| 99精品视频免费看| 国产成人精品亚洲777人妖| 51精品国产人成在线观看 | 亚洲综合色站| 久久成人在线视频| 欧美日韩在线视频免费| 欧美视频一区| 久久频这里精品99香蕉| 国产女同在线观看| 久久久蜜桃一区二区人| 国产精品h在线观看| 亚洲性猛交富婆| 看片的网站亚洲| 亚洲xxxxx性| 亚洲国产精品久久久久久久| www.色综合.com| 精品人伦一区二区三区| 国产香蕉视频在线看| 国产精品国产三级国产普通话99 | 欧美偷拍一区二区| 五月天开心婷婷| 亚洲高清999| 亚洲国产高清自拍| 一级肉体全黄裸片| 中文字幕人成人乱码| 欧美精品videosex性欧美| 国产无人区码熟妇毛片多| 久久一二三四| 成人精品在线观看| 欧美一级免费片| 久久精品夜色噜噜亚洲a∨| 亚洲成人网上| 日韩精品卡一| 色综合久久久久综合99| 一级黄色特级片| 伊人久久大香线蕉av超碰| 精品中文视频在线| 精品少妇一区二区三区密爱| 国语精品一区| 国产精品久久久久久亚洲调教| 国产999久久久| 久久亚洲欧美国产精品乐播| 亚洲成年人专区| 无遮挡爽大片在线观看视频 | 日本在线精品视频| 亚洲网站免费观看| 不卡电影一区二区三区| 在线播放豆国产99亚洲| 日韩欧美精品一区二区三区| 51久久夜色精品国产麻豆| 岛国精品资源网站| 伊人久久大香线| 日韩**中文字幕毛片| 国产成人精品av在线观| 久久久久久一级片| 波多野结衣与黑人| 99热播精品免费| 欧美电影免费观看完整版| 国产熟女一区二区| 亚洲精品乱码| 3d精品h动漫啪啪一区二区| 91激情在线| 在线观看日韩毛片| 欧美bbbbb性bbbbb视频| 激情久久久久| 亚洲r级在线观看| av在线第一页| 一本到一区二区三区| 无码国产69精品久久久久网站| 欧美激情另类| 国产精品久久久久久久久| 日本激情一区二区三区| 一区二区三区四区激情| 欧美日韩精品区别| 大胆日韩av| 日韩免费在线视频| 青青久在线视频| 精品动漫一区二区| 成人手机在线免费视频| 99国产精品久久久久久久| 国产精品一区二区在线观看 | 亚洲一二三专区| 日韩视频在线观看一区二区三区| 欧美在线观看视频一区| 国产精品成人品| 九色网友自拍视频手机在线| 欧美日韩亚洲激情| 中文字幕在线免费看线人| 日韩视频不卡| 九9re精品视频在线观看re6| av在线加勒比| 亚洲黄色在线观看| 欧美日韩精品区| 91视频.com| 国产第一页视频| 精品久久成人| 国产欧美日韩专区发布| 国产不卡在线| 日韩欧美国产成人一区二区| 免费中文字幕在线观看| 成人av高清在线| 成人av一级片| 精品国产乱码久久久久久果冻传媒| 日韩美女视频中文字幕| av影片在线看| 91精品在线免费| 久久久久亚洲av片无码下载蜜桃| 不卡av电影在线播放| 国产欧美在线一区| 日韩伦理视频| 亚洲精品欧美极品| free性欧美16hd| 亚洲欧美激情四射在线日| 中文文字幕一区二区三三| 国产精品第一页第二页第三页| 97免费公开视频| 亚洲午夜极品| 久久久久久九九| 亚洲精品555| 欧美日韩成人在线视频| 神宫寺奈绪一区二区三区| 色哟哟在线观看一区二区三区| 欧美亚洲色综久久精品国产| 国内精品伊人久久久久av一坑 | 久草免费在线色站| 亚洲欧美在线一区| 国产乱淫a∨片免费观看| 亚洲国产成人av网| 国产精久久一区二区三区| 国产在线视频一区二区| 国产青青在线视频| 色天天久久综合婷婷女18| 成人18视频| 成人做爰视频www网站小优视频| 北条麻妃久久精品| 欧美视频在线观看一区二区三区| 日本高清视频一区二区| 国产这里有精品| 国产色产综合产在线视频| 欧美成人手机在线视频| 欧美综合二区| 91精品国产毛片武则天| 欧美日韩一二三四| 国产青春久久久国产毛片| 国产成人精品一区二区三区视频| 欧美激情中文字幕乱码免费| 成人免费黄色网页| 亚洲精品二三区| 国产三级漂亮女教师| 色悠悠亚洲一区二区| 国产精品111| 亚洲欧美一区二区三区国产精品| 黄色aaa视频| 成人h动漫精品一区二| 久久久久xxxx| 久久视频一区| 少妇高潮喷水在线观看| 亚洲无中文字幕| 色综合电影网| 欧美日韩麻豆| 国产精品对白一区二区三区| 成人四虎影院| 97在线视频国产| 在线观看中文| 日韩中文字幕网| 国产免费a∨片在线观看不卡| 亚洲韩国欧洲国产日产av| 国内精品国产成人国产三级| 欧美午夜影院一区| 日韩在线视频不卡| 精品成人乱色一区二区| 日韩久久久久久久久| 手机免费看av| 26uuu精品一区二区| 性高潮免费视频| 国产成人精品三级| 在线免费黄色小视频| 精品一区二区三区不卡 | 免费看日韩毛片| 亚洲一区二区精品视频| 欧美人妻一区二区| 亚洲精选免费视频| 丁香六月激情综合| 国产日韩欧美激情| 摸摸摸bbb毛毛毛片| 国产欧美综合在线| 天天躁夜夜躁狠狠是什么心态| 久久亚区不卡日本| 日韩精品无码一区二区三区久久久| 91在线精品一区二区| 久久福利小视频| av在线不卡免费看| 免费黄色三级网站| 91小视频在线免费看| 成人精品在线观看视频| 国产亚洲污的网站| 成人午夜免费影院| 综合网在线视频| 欧美交换国产一区内射| 亚洲一区二区三区免费视频| 国产奶水涨喷在线播放| 五月天网站亚洲| 亚洲熟妇无码乱子av电影| 日本韩国视频一区二区| 日韩久久久久久久久久| 欧美精品久久久久久久久老牛影院| 91麻豆成人精品国产| 91麻豆精品国产综合久久久久久| 精品人妻少妇AV无码专区| 亚洲成人教育av| 免费在线毛片| www.久久撸.com| 亚洲综合影视| 91黑丝高跟在线| 一二区成人影院电影网| 国产精品丝袜视频| 亚洲国产aⅴ精品一区二区| 久久99精品久久久久久水蜜桃| 久久99视频| 手机在线视频你懂的| 影音先锋久久| 中文字幕永久视频| 国产成人免费在线| 成年人网站免费看| 一色桃子久久精品亚洲| www..com国产| 欧美亚州韩日在线看免费版国语版| 国产一区二区在线不卡| 亚洲国产一区二区三区在线观看| av中文字幕在线| 久久久久久亚洲精品中文字幕| 韩日精品一区二区| 亚洲free嫩bbb| 女厕嘘嘘一区二区在线播放 | 国产精品理论在线| 亚洲一区二区在线播放相泽| 无码人妻精品一区二| 日韩视频一区二区三区在线播放 | 国产一区二区三区黄片| 亚洲国产精品999| 日本不卡不卡| 欧美一级黄色网| 久久69av| 性欧美大战久久久久久久免费观看| 欧美激情精品久久久六区热门| 国产极品美女高潮无套久久久| 国产又黄又大久久| 免费在线观看污| 亚洲福利视频一区二区| 91好色先生tv| 亚洲美女av网站| 欧美aaaxxxx做受视频| 国产精品精品一区二区三区午夜版| 综合伊人久久| 精品一区二区成人免费视频 | 国产精品电影在线观看| 9l亚洲国产成人精品一区二三 | 乱人伦中文视频在线| 青青青国产精品一区二区| 亚洲天堂中文字幕在线观看| 亚洲精品成人自拍| 久久中文欧美| 一女三黑人理论片在线| 一区二区三区不卡视频| 91成人在线免费| 国产一区二区黄| 在线黄色的网站| 精品一区二区不卡| 激情婷婷欧美| 337p日本欧洲亚洲大胆张筱雨| 亚洲欧美在线视频观看| 国产成人精品一区二区色戒| 日韩电影中文字幕av| av资源一区| 国产传媒一区| 国内久久精品| 麻豆tv在线观看| 亚洲激情男女视频| 国产精品自产拍| 视频在线观看一区二区| 精品国产黄a∨片高清在线| 日本在线播放不卡| 日韩黄色一级片| 亚洲久久久久久久| 色婷婷一区二区| 欧美套图亚洲一区| 欧洲成人在线观看| 久久超碰99| 日本www.色| 欧美激情一区在线| 在线免费观看视频网站| 视频一区视频二区国产精品| 四虎精品一区二区免费| 正义之心1992免费观看全集完整版| 麻豆精品在线看| 女性裸体视频网站| 日韩一级免费一区| 久草在线资源站资源站| 国产精品美女久久久久av福利| 欧美午夜不卡| 强迫凌虐淫辱の牝奴在线观看| 午夜精品久久久久影视| 三级在线电影| 国产精品国模在线| 天天综合网网欲色| 制服.丝袜.亚洲.中文.综合懂| 亚洲一级二级三级| 美女毛片在线看| 国产精品久久久久久亚洲调教| 午夜激情久久| 丰满少妇xbxb毛片日本| 欧美性猛交xxxx黑人猛交| 国产资源在线播放| 91免费看国产| 一区二区三区四区五区精品视频| 欧美多人猛交狂配| 欧美日本一道本在线视频| 日本中文字幕中出在线| 久久天天狠狠| 美女视频一区二区三区| 强乱中文字幕av一区乱码| 日韩国产精品一区| www.国产精品| 国产一区二区四区| 国产日韩欧美精品在线| 国产黄频在线观看| 日韩av免费一区| 希岛爱理一区二区三区| 中文字幕免费在线播放| 欧美在线三级电影| 黄色小说在线播放| 亚洲蜜桃av| av一区二区三区黑人| 亚洲天天综合网| 97免费中文视频在线观看| 欧美一二区在线观看| 亚洲高清无码久久| 欧美日韩在线亚洲一区蜜芽| 国产黄色大片在线观看| 亚洲三区视频| 91日韩在线专区| 国产视频在线观看免费 | 波多野结衣家庭教师在线| 国产精品天美传媒| 天天综合网在线| 999久久久| 麻豆91在线播放免费| 国产欧美日韩另类| 欧美成人午夜视频|