欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Spring?Boot?整合?Smart-Doc的詳細(xì)過程(零注解生成?API?文檔,告別?Swagger)

 更新時間:2025年06月30日 10:25:41   作者:一個有女朋友的程序員  
本文將詳細(xì)介紹如何在SpringBoot項(xiàng)目中整合Smart-Doc,以及使用Maven插件一鍵生成多種格式的API文檔,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友參考下吧

?? 前言

隨著微服務(wù)架構(gòu)的普及,API 接口文檔的重要性日益凸顯。傳統(tǒng)的 Swagger(如 SpringFox、SpringDoc)雖然功能強(qiáng)大,但需要大量的注解來描述接口信息,增加了代碼冗余和維護(hù)成本。今天介紹的開源工具——Smart-Doc,它基于 Java 注釋和 Javadoc 規(guī)范自動生成統(tǒng)一、規(guī)范的 API 文檔,無需任何額外注解,真正做到了“寫好注釋 = 寫好文檔”。

本文將詳細(xì)介紹如何在 Spring Boot 項(xiàng)目中整合 Smart-Doc,以及使用 Maven 插件一鍵生成多種格式的 API 文檔。

?? 一、什么是 Smart-Doc?

Smart-Doc 是一款通過解析 Java 源碼注釋來自動生成 API 文檔的開源工具,具有以下特點(diǎn):

  • 零注解:不依賴任何第三方注解,僅需寫好 Java 注釋即可。
  • 多格式支持:支持 HTML、Markdown、OpenAPI、Postman JSON 等。
  • 支持 Spring Boot:完美兼容 Spring MVC、Spring WebFlux。
  • 構(gòu)建時生成:對運(yùn)行時性能無影響。

?? 二、Spring Boot 整合 Smart-Doc 步驟詳解

Step 1:添加 Maven 插件

首先,在你的 pom.xml 文件中添加 Smart-Doc 的 Maven 插件配置:

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
            <!--api文檔  begin-->
            <plugin>
                <groupId>com.github.shalousun</groupId>
                <artifactId>smart-doc-maven-plugin</artifactId>
                <version>2.3.5</version>
                <configuration>
                    <!--指定生成文檔的使用的配置文件-->
                    <configFile>${basedir}/src/main/resources/smart-doc.json</configFile>
                </configuration>
                <executions>
                    <execution>
                        <!--如果不需要在執(zhí)行編譯時啟動smart-doc,則將phase注釋掉-->
                         <phase>compile</phase>
                        <goals>
                            <goal>html</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
            <!--api文檔  end-->
        </plugins>
    </build>

Step 2:編寫符合規(guī)范的 Java 注釋

Smart-Doc 依賴于標(biāo)準(zhǔn)的 Java 注釋生成文檔。確保為你的 Controller 和 DTO 類編寫詳細(xì)的注釋。

示例 Controller:

/**
 * 用戶控制器
 * @Author: pzj
 * @Date: 2025/6/12 18:59
 **/
@RestController
@RequestMapping("/users")
public class UserController {
    /**
     * 獲取用戶詳情
     * @param id 用戶ID
     * @return 返回用戶對象
     */
    @GetMapping("/{id}")
    public User getUserById(@PathVariable Long id) {
        return new User(id, "張三");
    }
    /**
     * 創(chuàng)建新用戶
     * @param user 用戶實(shí)體
     * @return 創(chuàng)建結(jié)果
     */
    @PostMapping("/add")
    public String createUser(@RequestBody User user) {
        System.out.println(user);
        return "創(chuàng)建成功";
    }
}

示例 DTO 對象:

/**
 * 用戶實(shí)體類
 *
 * @Author: pzj
 * @Date: 2025/6/12 19:00
 *
 **/
public class User implements Serializable {
    /**
     * 主鍵
     */
    private Long id;
    /**
     * 用戶名
     */
    private String userName;
    public User(Long id, String userName) {
        this.id = id;
        this.userName = userName;
    }
    public Long getId() {
        return id;
    }
    public void setId(Long id) {
        this.id = id;
    }
    public String getUserName() {
        return userName;
    }
    public void setUserName(String userName) {
        this.userName = userName;
    }
}

Step 3:添加配置文件 (src/main/resources/smart-doc-config.json)

{
  //指定后端服務(wù)訪問地址,
  "serverUrl": "http://127.0.0.1:8090",
  //指定文檔的輸出路徑,生成到項(xiàng)目靜態(tài)文件目錄下,隨項(xiàng)目啟動可以查看,
  "outPath": "src/main/resources/static/doc/api",
  //是否開啟嚴(yán)格模式,
  "isStrict": false,
  //是否將文檔合并到一個文件中,
  "allInOne": true,
  //是否創(chuàng)建可以測試的html頁面,
  "createDebugPage": true,
  //controller包過濾(換成你的路徑),
  "packageFilters": "com.example.smartdoc.controller",
  //基于highlight.js的代碼高設(shè)置,
  "style": "xt256",
  //配置自己的項(xiàng)目名稱,
  "projectName": "smart-doc文檔",
  //是否顯示接口作者名稱,
  "showAuthor": false,
  //自定義設(shè)置輸出文檔名稱,
  "allInOneDocFileName": "index.html",
  //文檔變更記錄,非必須,
  "revisionLogs": [
    {
      //文檔版本號,
      "version": "1.0",
      //文檔修訂時間,
      "revisionTime": "2020-12-31 10:30",
      //變更操作狀態(tài),一般為:創(chuàng)建、更新等,
      "status": "update",
      //文檔變更作者,
      "author": "peng_zj",
      //變更描述,
      "remarks": "修改了XXXX功能"
    }
  ]
}

Step 4:運(yùn)行插件生成文檔

在maven插件中選擇想要的類型生成對應(yīng)的文檔:

生成的文檔默認(rèn)位于 target/smart-doc/html/index.html。打開瀏覽器訪問該文件,即可看到結(jié)構(gòu)清晰、內(nèi)容豐富的 API 文檔頁面。

Step 5:效果展示

圖片

?? 三、常見問題排查指南

問題解決方案
文檔未生成檢查 Maven 插件是否正確配置,執(zhí)行命令是否正確
接口未掃描到檢查 packageFilters 是否包含對應(yīng)包路徑
字段缺失檢查是否有注釋或字段是否被忽略
輸出格式不滿足需求修改配置文件或自定義模板

?? 四、結(jié)語

Smart-Doc 憑借其“零注解 + 強(qiáng)大解析能力”的特性,成為替代傳統(tǒng) Swagger 的理想選擇。相比 Swagger,它更加簡潔、高效,特別適合那些追求代碼整潔、希望減少注解污染的項(xiàng)目。

無論是企業(yè)內(nèi)部系統(tǒng)、SaaS 平臺,還是微服務(wù)架構(gòu),都可以借助 Smart-Doc 實(shí)現(xiàn)高質(zhì)量的 API 文檔自動化生成與管理。

到此這篇關(guān)于Spring Boot 整合 Smart-Doc:零注解生成 API 文檔,告別 Swagger的文章就介紹到這了,更多相關(guān)Spring Boot Smart-Doc API 文檔內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 基于Java代碼實(shí)現(xiàn)支付充值的通用流程

    基于Java代碼實(shí)現(xiàn)支付充值的通用流程

    本文給大家分享一段java核心代碼實(shí)現(xiàn)支付充值的通用流程,非常不錯,具有參考借鑒價值,感興趣的朋友一起看看吧
    2016-05-05
  • Java多線程編程實(shí)現(xiàn)socket通信示例代碼

    Java多線程編程實(shí)現(xiàn)socket通信示例代碼

    這篇文章主要介紹了Java多線程編程實(shí)現(xiàn)socket通信示例代碼,詳細(xì)介紹了tcp、udp協(xié)議,以及基于socket的Java網(wǎng)絡(luò)編程的相關(guān)內(nèi)容及代碼示例,代碼測試可用,供大家參考。
    2017-10-10
  • Java實(shí)現(xiàn)優(yōu)雅的參數(shù)校驗(yàn)方法詳解

    Java實(shí)現(xiàn)優(yōu)雅的參數(shù)校驗(yàn)方法詳解

    這篇文章主要為大家詳細(xì)介紹了Java語言如何實(shí)現(xiàn)優(yōu)雅的參數(shù)校驗(yàn),文中的示例代碼講解詳細(xì),對我們學(xué)習(xí)Java有一定是幫助,需要的可以參考一下
    2022-06-06
  • Java中的CGLIB動態(tài)代理的使用及原理詳解

    Java中的CGLIB動態(tài)代理的使用及原理詳解

    這篇文章主要介紹了Java中的CGLIB動態(tài)代理的使用及原理詳解,CGLIB是一個功能強(qiáng)大,高性能的代碼生成包,它為沒有實(shí)現(xiàn)接口的類提供代理,為JDK的動態(tài)代理提供了很好的補(bǔ)充,需要的朋友可以參考下
    2023-09-09
  • Java 中分形圖的幾種方法詳解

    Java 中分形圖的幾種方法詳解

    這篇文章主要介紹了Java 中幾種分形的方法詳解的相關(guān)資料,需要的朋友可以參考下
    2017-07-07
  • mybatis一級緩存和二級緩存的區(qū)別及說明

    mybatis一級緩存和二級緩存的區(qū)別及說明

    這篇文章主要介紹了mybatis一級緩存和二級緩存的區(qū)別及說明,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-11-11
  • JAVA解析XML字符串簡單方法代碼案例

    JAVA解析XML字符串簡單方法代碼案例

    這篇文章主要介紹了JAVA解析XML字符串簡單方法代碼案例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-09-09
  • Idea中springboot項(xiàng)目的熱部署無法生效問題解決

    Idea中springboot項(xiàng)目的熱部署無法生效問題解決

    本文主要介紹了Idea中springboot項(xiàng)目的熱部署無法生效問題解決,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-10-10
  • SpringMVC整合websocket實(shí)現(xiàn)消息推送及觸發(fā)功能

    SpringMVC整合websocket實(shí)現(xiàn)消息推送及觸發(fā)功能

    這篇文章主要為大家詳細(xì)介紹了SpringMVC整合websocket實(shí)現(xiàn)消息推送及觸發(fā)功能,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-03-03
  • SpringBoot整合SpringDataRedis的示例代碼

    SpringBoot整合SpringDataRedis的示例代碼

    這篇文章主要介紹了SpringBoot整合SpringDataRedis的示例代碼,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-05-05

最新評論