精品欧美一区二区三区在线观看 _久久久久国色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技術棧公眾號

欧美孕妇孕交| 色老头在线视频| 国产成人强伦免费视频网站| 欧美中文在线| 韩国成人福利片在线播放| 欧美激情综合色综合啪啪五月| 午夜剧场免费看| 97人人做人人爽香蕉精品| 亚洲欧美另类在线| 精品麻豆av| 一级黄色a视频| 国产精品久久久久久模特| 中文字幕亚洲情99在线| 午夜影院福利社| 精品国产美女a久久9999| 亚洲6080在线| 懂色av一区二区三区四区五区| 日本激情一区二区| 久久超碰97中文字幕| 97久久精品人人澡人人爽缅北| 亚洲国产日韩一区无码精品久久久| 成人精品视频在线观看| 91福利国产精品| 人妻无码久久一区二区三区免费| av片在线免费观看| 91美女片黄在线观看| 91免费看网站| 在线观看视频中文字幕| 蜜桃视频一区| 午夜精品国产精品大乳美女| 国产精品白丝喷水在线观看| 欧美精品一二| 国产视频自拍一区| 四虎精品一区二区| 欧美经典影片视频网站| 欧美日韩精品欧美日韩精品| 日韩免费毛片视频| 欧美另类老肥妇| 亚洲成人自拍网| 8x8ⅹ国产精品一区二区二区| 1pondo在线播放免费| 国产亚洲欧美日韩日本| 欧美二区三区在线| 青青青免费视频在线2| aaa国产一区| 国产欧美一区二区三区另类精品| 国产黄色片免费观看| 韩国三级中文字幕hd久久精品| 日本一区二区在线免费播放| 久久精品视频1| 在线日本成人| 97视频在线观看视频免费视频| 久久国产精品波多野结衣av| 欧美暴力喷水在线| 欧美成人午夜影院| 欧美精品xxxxx| 亚洲精品一二三区区别| 欧美成人精品一区| 九九在线观看视频| 1024成人| 91成人免费观看网站| 国产欧美一区二区三区在线看蜜臂| 亚洲人成免费| 国产91精品久久久久| 丰满人妻老熟妇伦人精品| 天使萌一区二区三区免费观看| 日韩av男人的天堂| 艳妇乳肉豪妇荡乳av无码福利 | 男人添女人下面高潮视频| 国产美女高潮在线观看| 日韩欧美精品在线观看| 国产精品乱码久久久久| 小说区图片区亚洲| 日韩欧美一区二区视频| 中国极品少妇videossexhd| 特黄特色欧美大片| 中文字幕亚洲国产| 成人免费视频网站入口::| 亚洲高清电影| 国产成人aa精品一区在线播放| 免费一级a毛片| 国产综合色产在线精品 | 亚洲免费福利一区| 中文字幕亚洲天堂| 黄色一级片在线| 国产日韩欧美三级| 成人国产精品久久久| 黄色片一区二区| 久久免费美女视频| 经典三级在线视频| 美女91在线看| 777xxx欧美| 9.1成人看片| 99久久夜色精品国产亚洲96| 国模叶桐国产精品一区| 亚洲图片欧美日韩| 国产成人8x视频一区二区| 欧美国产二区| 4438x成人网全国最大| 日韩欧美国产中文字幕| 香蕉视频xxxx| 成人系列视频| 久久久这里只有精品视频| 中文字幕日韩三级| 99久久婷婷国产综合精品| 亚洲视频小说| 中文字幕在线视频久| 欧美一级片在线看| 成人在线观看免费高清| 亚洲青涩在线| 99国产超薄丝袜足j在线观看 | 久久久综合精品| 婷婷视频在线播放| 毛片无码国产| 精品国产一区二区三区久久久蜜月| 美女100%露胸无遮挡| 亚洲大片av| 亚洲一区二区三区香蕉| 极品白浆推特女神在线观看| 亚洲小说欧美激情另类| 五月激情五月婷婷| 精品视频网站| 日本伊人精品一区二区三区介绍| 日本xxxxxwwwww| 亚洲免费看黄网站| 国产欧美激情视频| 成人无号精品一区二区三区| 青青草精品毛片| 日本韩国免费观看| 亚洲一区视频在线观看视频| 又色又爽又黄视频| 日韩综合网站| 国产精品欧美亚洲777777| 欧美日韩国产综合视频| 欧美日韩国产一区在线| 久久无码专区国产精品s| 亚洲精品国产首次亮相| 成人亚洲激情网| 麻豆传媒视频在线观看免费| 欧美性生交片4| 精品国产aaa| 日韩精品一二三四| 欧美在线视频二区| 色8久久影院午夜场| 国产偷亚洲偷欧美偷精品| 天天操天天摸天天干| va亚洲va日韩不卡在线观看| 精品国产av无码一区二区三区 | 欧美日韩在线观看一区| 亚洲第一av| 亚洲欧美另类人妖| 欧美一区二区三区不卡视频| 99国产精品视频免费观看| av高清在线免费观看| 欧美美女啪啪| 奇米四色中文综合久久| 免费在线黄色网址| 欧美在线一区二区| 可以免费看av的网址| 精品一区二区三区蜜桃| 最近中文字幕免费mv| 欧美日韩国产一区二区在线观看| 久久久国产精品视频| 精品国产999久久久免费| 亚洲一区二区三区免费视频| 国产人妻黑人一区二区三区| 久久精品欧洲| 夜夜爽www精品| 精品亚洲a∨一区二区三区18| 欧美大片免费观看在线观看网站推荐| 亚洲黄色在线免费观看| 精品欧美国产一区二区三区| 亚洲精品一区二区三区影院忠贞| 视频一区视频二区中文| 99re99热| 女同久久另类99精品国产| 国产精品大片wwwwww| 久操免费在线| 亚洲国产精品小视频| 欧美男人天堂网| 亚洲男女一区二区三区| 97香蕉碰碰人妻国产欧美| 日本在线不卡一区| 国产激情片在线观看| 亚洲黄色录像| 91久久国产婷婷一区二区| 黄色在线免费观看网站| 最近2019免费中文字幕视频三| 精品国产亚洲一区二区麻豆| 懂色av影视一区二区三区| av免费播放网站| 成人精品gif动图一区| 午夜激情福利在线| 亚洲性色视频| 亚洲欧洲日韩综合二区| 国产主播性色av福利精品一区| 国产精品高潮在线| 丁香花在线电影| 色婷婷成人综合| 免费国产羞羞网站视频| 欧美日韩高清一区二区不卡| 国产一级淫片免费| 中文字幕一区在线| 国产精品三级在线观看无码| 国产麻豆精品视频| 国产三区在线视频| 黄色av日韩| 小说区视频区图片区| 九九热爱视频精品视频| av资源站久久亚洲| 亚洲伦理一区二区| 国产精品18久久久久久麻辣| 96av在线| 九九视频这里只有精品| 3d成人动漫在线| 亚洲欧洲在线免费| 亚洲色图欧美视频| 精品福利二区三区| 国产免费黄色网址| 欧美日韩日日骚| 亚洲国产成人无码av在线| 一个色综合网站| 91插插插插插插| 国产精品欧美久久久久无广告| aaaaa一级片| 成人久久18免费网站麻豆| 五月天丁香花婷婷| 精品在线播放午夜| 性生活免费在线观看| 天堂影院一区二区| 精品99在线视频| 亚洲综合二区| 免费看黄在线看| 精品福利av| 和岳每晚弄的高潮嗷嗷叫视频 | 香港三级韩国三级日本三级| 午夜精品亚洲| 97精品国产97久久久久久粉红| 欧美在线电影| 性刺激综合网| 欧美亚洲高清| 天堂一区二区三区| sdde在线播放一区二区| 日本一区二区高清视频| 国产成人短视频在线观看| 欧美日韩一区二区三区在线视频| 日韩欧美黄色| 秋霞久久久久久一区二区| 亚洲春色h网| 欧美日韩在线观看一区二区三区 | 国产盗摄女厕一区二区三区| 亚洲欧美日本一区二区| 国内久久婷婷综合| 一卡二卡三卡四卡五卡| 成人黄色在线视频| 国产精品一区二区人妻喷水| av成人免费在线| 我和岳m愉情xxxⅹ视频| 日本一区二区三区dvd视频在线 | 亚洲制服丝袜一区| 国产奶水涨喷在线播放| 欧美日韩在线视频首页| 午夜精品久久久久久久蜜桃| 欧美日本精品一区二区三区| 国产精品一二三四五区| 精品少妇一区二区三区在线播放| 少妇高潮一区二区三区99小说| 精品少妇一区二区三区视频免付费| 国产综合无码一区二区色蜜蜜| 亚洲国产精品va| 国产乱子伦三级在线播放| 日韩中文字幕网| 亚洲卡一卡二| 欧美最近摘花xxxx摘花| 精品久久在线| 国产高清一区视频| 一区二区视频网站| 欧洲杯半决赛直播| 无遮挡亚洲一区| 中文字幕免费一区二区三区| 男女日批视频在线观看| 久久久久看片| 日日干日日操日日射| 成人深夜在线观看| 国产黄色大片免费看| 一区二区欧美国产| 探花视频在线观看| 欧美一区二区三区爱爱| 四虎精品在永久在线观看| 中文精品99久久国产香蕉| 日本无删减在线| 国产精品久久久久久中文字| 日韩成人18| 日韩经典在线视频| 欧美国产先锋| 日本888xxxx| www.亚洲精品| 欧美偷拍第一页| 日本福利一区二区| 秋霞网一区二区| 久久天堂av综合合色| 欧美大片免费高清观看| 99精品国产高清一区二区| 久久超碰99| 欧美激情视频免费看| 国产综合色精品一区二区三区| 国产ts在线播放| 亚洲成人午夜电影| aa视频在线免费观看| 在线电影av不卡网址| 乡村艳史在线观看| 波多野结衣久草一区| 欧美好骚综合网| 国产性生交xxxxx免费| 成人动漫一区二区| 国产精品视频一区二区三| 在线免费不卡电影| 色av男人的天堂免费在线| 欧美激情欧美激情| www一区二区三区| 亚洲欧美久久久久一区二区三区| 毛片一区二区| 少妇一级淫片免费放播放| 一区二区三区精品视频在线| 一区二区久久精品66国产精品| 亚洲人成五月天| 性国裸体高清亚洲| 精品一区久久| 99亚洲视频| 污污内射在线观看一区二区少妇| 亚洲影院久久精品| 99视频在线观看免费| 久久精品国产电影| 亚洲国产综合在线观看| 性刺激综合网| 免费成人性网站| 国产视频不卡在线| 欧美日韩一区三区四区| 1区2区3区在线观看| 国产精品入口福利| 久久免费精品视频在这里| 超碰超碰在线观看| 中文幕一区二区三区久久蜜桃| 亚洲婷婷久久综合| 中文字幕亚洲欧美一区二区三区 | 色久优优欧美色久优优| 欧美日本网站| 国产精品爱久久久久久久| 国内精品视频在线观看| 麻豆av免费在线| 国产欧美一区二区三区沐欲| 日韩免费av网站| 最近中文字幕2019免费| 国产91亚洲精品久久久| 国产精品99久久久久久大便| 国产自产视频一区二区三区| www.色小姐com| 欧美xxxx在线观看| 美女的胸无遮挡在线观看| 欧美一卡2卡3卡4卡无卡免费观看水多多| 亚洲专区一区二区三区| 色噜噜日韩精品欧美一区二区| 欧美在线观看一二区| 日韩精品成人av| 福利视频久久| 一本色道久久综合亚洲精品不| 瑟瑟视频在线观看| 欧美日韩卡一卡二| 青青草视频在线免费直播| 极品日韩久久| 青娱乐精品视频| 九九热最新地址| 亚洲激情电影中文字幕| 国产一区二区精品调教| 婷婷视频在线播放| av成人免费在线观看| 亚洲午夜无码久久久久| 欧美久久久精品| 国产免费av一区二区三区| 国产大片一区二区三区| 亚洲一区二区精品久久av| 日韩欧美电影在线观看| 91精品国产自产在线| 91久久综合| 林心如三级全黄裸体| 欧美不卡一区二区| 国产精品极品美女在线观看| 中国一级黄色录像| 91日韩一区二区三区| 亚洲网站免费观看| 海角国产乱辈乱精品视频| 精品国产一区二区三区噜噜噜| 久久综合桃花网| 在线欧美日韩国产| 欧美亚洲系列| 一本色道久久综合亚洲二区三区 | 免费看日本黄色片| 精品国精品自拍自在线| 巨大黑人极品videos精品| 国产 日韩 亚洲 欧美|