最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

SpringBoot3.x整合swagger的實(shí)現(xiàn)示例

 更新時(shí)間:2025年08月05日 10:18:39   作者:比晚風(fēng)溫柔  
本文主要介紹了SpringBoot3.x整合swagger的實(shí)現(xiàn)示例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

零、提示

由于SpringBoot以及swagger的版本更新迭代得都比較快,因此當(dāng)你采用最新版SpringBoot時(shí),最好也使用最新版的swagger依賴。依賴在下面的網(wǎng)址進(jìn)行查找,輸入對應(yīng)的artifactId就可以找到了

https://mvnrepository.com/

一、簡介

官網(wǎng):https://swagger.io/

對于SpringBoot而言,Swagger的作用是通過后端SpringBoot代碼快速生成接口文檔,方便測試接口以及前端使用。

二、基本使用

由于springfox不適用于SpringBoot3.x,故使用Springdoc進(jìn)行代替。

1. 引入依賴

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

2. 其它相關(guān)依賴

		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-web</artifactId>
		</dependency>


		<!-- 讓響應(yīng)結(jié)果更美觀 -->
		<dependency>
			<groupId>com.alibaba.cola</groupId>
			<artifactId>cola-component-dto</artifactId>
			<version>4.3.2</version>
		</dependency>

2. 編寫配置文件

添加 swagger 的配置文件 SwaggerConfig.java

@Configuration
public class SwaggerConfig {

}

此時(shí)Swagger已經(jīng)簡單整合成功,運(yùn)行SpringBoot服務(wù),瀏覽器打開網(wǎng)址進(jìn)行測試

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

我使用的是8081端口,因此我使用下面的鏈接打開

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

3. 配置Swagger文檔基本信息

@Configuration
public class SwaggerConfig {
    /*
    配置swagger基本信息
     */
    @Bean
    public OpenAPI swaggerOpenApi() {
        return new OpenAPI()
                .info(new Info().title("Swagger學(xué)習(xí)-比晚風(fēng)溫柔")
                        .description("Swagger簡單入門")
                        .version("v1.0"))
                .externalDocs(new ExternalDocumentation()
                        .description("我的博客")
                        .url("https://blog.csdn.net/2202_76007821?spm=1000.2115.3001.5343"));
    }
}

此時(shí)重新運(yùn)行服務(wù),打開網(wǎng)址

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

4. 控制 Swagger 的開啟

在開發(fā)或者測試環(huán)境下,我們開啟 swagger 會方便前端和后端的交互,但是如果在生產(chǎn)環(huán)境下也開啟 swagger 的話,是會將接口暴露出去的,有極大風(fēng)險(xiǎn),如何讓 swagger 根據(jù)不同的環(huán)境來決定是否開啟?

這里我準(zhǔn)備了四個項(xiàng)目的配置文件,dev、prod 兩個環(huán)境的配置文件僅是端口上的不同

 

application.yml -------------------------- 全局配置文件
application-dev.yml -------------------- 開發(fā)環(huán)境配置文件
application-prod.yml -------------------- 生產(chǎn)環(huán)境配置文件

 application-dev.yml配置

springdoc:
  api-docs:
    enabled: true # 開啟OpenApi接口
  swagger-ui:
    enabled: true # 開啟swagger界面,依賴OpenApi,需要OpenApi同時(shí)開啟

 application-prod.yml配置

springdoc:
  api-docs:
    enabled: false # 關(guān)閉OpenApi接口
  swagger-ui:
    enabled: false # 關(guān)閉swagger界面

application.yml 內(nèi)容如下,用于指定選擇的環(huán)境:

spring:
  profiles:
    active: dev

在 application.yml 全局配置文件中環(huán)境指向 dev 時(shí),是可以打開 swagger 的

如果我將 application.yml 全局配置文件中環(huán)境指向 prod 時(shí),就不能打開 swagger 了 

5. 完善Swagger文檔

5.1 實(shí)體類添加Swagger注解

@Component
@Schema(title = "水果類")
public class Fruit {
    @Schema(title = "水果名稱",example = "塔菲新式番茄",minLength = 1,maxLength = 100)
    private String name;
    @Schema(title = "水果數(shù)量",example = "520")
    private Integer num ;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public Integer getNum() {
        return num;
    }

    public void setNum(Integer num) {
        this.num = num;
    }
}

@Schema: Swagger文檔的注解,用于說明類/字段

  • title: 類/字段說明
  • example: 示例,Swagger中會將這個字段作為示例
  • minLength/maxLength: 最小/最大長度,字段為String類型時(shí)生效(僅用于文檔說明,不會拋出異常)

5.2 控制器注解解析

@RestController
@RequestMapping("/fruit")
@Tag(name = "水果控制器",description = "這是水果測試接口")
public class FruitController {
    @PostMapping("/add")
    @Operation(summary = "新增水果",description = "這是新增水果的方法")
    public String add(Fruit fruit) {
        return "新增成功";
    }
}
  • @Tag: 控制器說明
    • name: 名稱
    • description: 描述說明
  • @Operation: 請求說明
    • summary: 說明,Swagger頁面在方法后面,不會被折疊
    • descirption: 描述,會被折疊到方法說明中

  配置之后,讓我們打開網(wǎng)址查看一下

6. 接口調(diào)用

點(diǎn)擊進(jìn)行測試

測試成功 

三、使用postman進(jìn)行接口測試

1. 導(dǎo)入鏈接

回到文檔頭部,點(diǎn)擊api-docs

復(fù)制鏈接

打開postman,點(diǎn)擊import

 選擇第二個進(jìn)行導(dǎo)入

baseurl問題使用環(huán)境進(jìn)行統(tǒng)一修改即可,點(diǎn)擊創(chuàng)建新環(huán)境

手動修改參數(shù)

點(diǎn)擊進(jìn)行測試

四、代碼

代碼已經(jīng)上傳到gitee,打開網(wǎng)址,點(diǎn)擊下載zip即可

https://gitee.com/guirongyuan/swagger-leaning

到此這篇關(guān)于SpringBoot3.x整合swagger的實(shí)現(xiàn)示例的文章就介紹到這了,更多相關(guān)SpringBoot3.x整合swagger內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家! 

相關(guān)文章

  • 基于selenium-java封裝chrome、firefox、phantomjs實(shí)現(xiàn)爬蟲

    基于selenium-java封裝chrome、firefox、phantomjs實(shí)現(xiàn)爬蟲

    這篇文章主要介紹了基于selenium-java封裝chrome、firefox、phantomjs實(shí)現(xiàn)爬蟲,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2020-10-10
  • Springboot整合IoTB的實(shí)現(xiàn)示例

    Springboot整合IoTB的實(shí)現(xiàn)示例

    本文主要介紹了Springboot整合IoTB的實(shí)現(xiàn)示例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2025-12-12
  • Spring使用Redis限制用戶登錄失敗的次數(shù)及暫時(shí)鎖定用戶登錄權(quán)限功能

    Spring使用Redis限制用戶登錄失敗的次數(shù)及暫時(shí)鎖定用戶登錄權(quán)限功能

    這篇文章主要介紹了Spring使用Redis限制用戶登錄失敗的次數(shù)及暫時(shí)鎖定用戶登錄權(quán)限功能,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下
    2024-02-02
  • Spring系列之事物管理

    Spring系列之事物管理

    這篇文章主要介紹了Spring系列之事物管理,文中通過示例代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用spring方面知識具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們一起學(xué)習(xí)學(xué)習(xí)吧
    2021-09-09
  • SpringBoot集成JWT實(shí)現(xiàn)登陸驗(yàn)證的方法詳解

    SpringBoot集成JWT實(shí)現(xiàn)登陸驗(yàn)證的方法詳解

    JSON?Web?Token(JWT)是一個開放的標(biāo)準(zhǔn)(RFC?7519),它定義了一個緊湊且自包含的方式,用于在各方之間以JSON對象安全地傳輸信息。本文將利用SpringBoot集成JWT實(shí)現(xiàn)登陸驗(yàn)證,感興趣的可以了解一下
    2022-05-05
  • java8 toMap問題(key重復(fù)如何解決)

    java8 toMap問題(key重復(fù)如何解決)

    這篇文章主要介紹了java8 toMap問題(key重復(fù)如何解決),具有很好的參考價(jià)值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-05-05
  • Maven打包SpringBoot工程的實(shí)現(xiàn)示例

    Maven打包SpringBoot工程的實(shí)現(xiàn)示例

    在使用Spring Boot和Maven的項(xiàng)目中,你可以使用Maven來打包你的項(xiàng)目,本文主要介紹了Maven打包SpringBoot工程的實(shí)現(xiàn)示例,具有一定的參考價(jià)值,感興趣的可以了解一下
    2024-05-05
  • Java StringUtils字符串分割轉(zhuǎn)數(shù)組的實(shí)現(xiàn)

    Java StringUtils字符串分割轉(zhuǎn)數(shù)組的實(shí)現(xiàn)

    這篇文章主要介紹了Java StringUtils字符串分割轉(zhuǎn)數(shù)組的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-09-09
  • 面試官:詳細(xì)談?wù)凧ava對象的4種引用方式

    面試官:詳細(xì)談?wù)凧ava對象的4種引用方式

    這篇文章主要給大家介紹了java面試官常會問到的,關(guān)于Java對象的4種引用方式的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用Java具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-05-05
  • springboot3.X版本集成mybatis遇到的問題及解決

    springboot3.X版本集成mybatis遇到的問題及解決

    在將SpringBoot3.X版本與MyBatis集成時(shí),直接參考基于SpringBoot2.X的配置方法會導(dǎo)致各種報(bào)錯,尤其是無法注入mapper的bean問題,這主要是因?yàn)镾pringBoot3.X版本需要搭配MyBatis3.0.3及以上版本才能正常工作,通過更新maven配置至MyBatis3.0.3版本,可以解決這一問題
    2024-09-09

最新評論

鄂伦春自治旗| 平乐县| 鹿泉市| 阜城县| 鄂伦春自治旗| 安龙县| 武川县| 海原县| 曲靖市| 梅河口市| 休宁县| 古浪县| 砚山县| 阜阳市| 托克托县| 大邑县| 西华县| 阜城县| 新民市| 长葛市| 新兴县| 荔波县| 房山区| 宁河县| 蒙阴县| 五大连池市| 弥渡县| 汪清县| 嘉峪关市| 象山县| 金乡县| 高碑店市| 固原市| 横山县| 凤山县| 濉溪县| 故城县| 余干县| 海门市| 报价| 凭祥市|