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

SpringBoot整合Swagger3的流程詳解

 更新時間:2024年01月04日 09:20:14   作者:Splaying  
這篇文章主要介紹了SpringBoot整合Swagger3的流程詳解,Swagger最核心的類就是Docket、它可以配置作者信息、掃描類型,在SwaggerConfig配置類,添加@Configuration和@EnableOpenApi注解,需要的朋友可以參考下

1、創(chuàng)建項(xiàng)目

首先創(chuàng)建一個SpringBoot項(xiàng)目,隨便勾選幾個項(xiàng)目依賴,我選擇了web、thymeleaf、lombok。

在這里插入圖片描述

添加項(xiàng)目依賴,這里使用Swagger3(與Swagger2略有差異),并且添加一個好看一點(diǎn)的ui界面

<!-- swagger -->
<dependency>
    <groupId>io.springfox</groupId>
    <artifactId>springfox-boot-starter</artifactId>
    <version>3.0.0</version>
</dependency>
<dependency>
    <groupId>com.github.xiaoymin</groupId>
    <artifactId>swagger-bootstrap-ui</artifactId>
    <version>1.9.6</version>
</dependency>

2、配置Swagger

  • Swagger最核心的類就是Docket、它可以配置作者信息、掃描類型…
  • 首先創(chuàng)建一個SwaggerConfig配置類,添加@Configuration和@EnableOpenApi注解。
  • 然后再向里面丟入Docket類的Bean實(shí)例,然后默認(rèn)就可以訪問了
@Configuration
@EnableOpenApi
public class SwaggerConfig {
	@Bean
    Docket docket(){
		return new Docket(DocumentationType.SWAGGER_2)
	}
}

訪問localhost:8080/doc.html頁面就可以看到了,/error接口的8種請求方式默認(rèn)會出現(xiàn)在文檔中,以及一些可以配置的信息

在這里插入圖片描述

3、Swagger配置

上圖紅字的位置都是可以進(jìn)行配置的,可以針對不同人寫的不同接口等信息放在不同的分組中。

3.1、配置主頁信息

其實(shí)這里有用的沒幾個,基本上很多信息都是默認(rèn)給出。

@Bean
public ApiInfo apiInfo(){
    return new ApiInfo("這是Swagger文檔",				//title名稱
            "歸來仍是少年",								//簡介
            "1.0",										//版本
            "urn:tos",									//服務(wù)url
            new Contact(								//配置聯(lián)系作者的方式
            	"xxx",									//作者名稱
            	"https://www.baidu.com",				//連接
            	"xxxx@qq.com"),							//作者郵箱
            "Apache 2.0",								//許可證
            "http://www.apache.org/licenses/LICENSE-2.0",		//許可證地址
            new ArrayList<>());							//供應(yīng)商的拓展
}

3.2、配置Docket信息

  • 上面配置了主頁面的一些信息,然后需要將這些信息注入到Docket中。
  • 另外配置掃描接口的路徑、過濾、分組以及是否開啟等
  • 當(dāng)然這里可以拿到環(huán)境配置文件、可以根據(jù)不同的環(huán)境決定是否開啟;一般情況下這些接口都是在開發(fā)環(huán)境中進(jìn)行展示的,實(shí)際交付的時候是不會提供的。
  • Docket是采用鏈?zhǔn)骄幊痰男问竭M(jìn)行配置,當(dāng)存在多個Docket時可以通過不同的分組名稱進(jìn)行區(qū)分
@Bean
Docket docket_A(){
    return new Docket(DocumentationType.SWAGGER_2)
            .groupName("TestA");
}

@Bean
Docket docket_B (){
    return new Docket(DocumentationType.SWAGGER_2)
            .groupName("TestB");
}


@Bean
Docket docket(Environment environment){

    boolean result = environment.acceptsProfiles(Profiles.of("dev"));

    return new Docket(DocumentationType.SWAGGER_2)
    		.groupName("Splay")				//默認(rèn)分組Default改為Splay
            .apiInfo(apiInfo())				//注入主頁面信息
            .enable(true)                   //是否啟用swagger
            .select()						//掃描
            /**
             * apis指定要掃描的方式
             * 1. basePackage(): 指定掃描的包
             * 2. any(): 全部掃描
             * 3. none(): 都不掃描
             * 4. withClassAnnotation(): 通過類注解掃描
             * 5. withMethodAnnotation(): 通過方法上的注解掃描
             */
            .apis(RequestHandlerSelectors.basePackage("com.splay.controller"))
            /**
             * paths過濾不需要
             * 1. ant(): 制定路徑
             * 2. none(): 全都不過濾
             * 3. any(): 都過濾
             * 4. regex(): 正則表達(dá)式
             */
            //.paths(PathSelectors.ant("/splay/**"))		//過濾不需要的路徑
            .build();
}

3.3、編寫Controller

上面通過apis方法配置只掃描com.splay.controller包下的所有接口

@Controller
public class RouterController {
    
    @GetMapping("/hello")
    @ResponseBody
    public String toHello(){
        return "Hello Swagger";
    }
}

這里可以綁定開啟的環(huán)境,通過Environment拿到進(jìn)行判斷再決定是否開啟。

在這里插入圖片描述

3.4、效果圖

在這里插入圖片描述

4、注解的使用

  • Swagger提供了很多的注解,幾乎所有需要提供展示的東西都可以使用注解來開啟。
  • @Api配置Controller類、@ApiModel類可以給pojo進(jìn)行展示、@ApiModelProperty配置pojo的屬性、@ApiOperation配置方法…

4.1、pojo的配置

當(dāng)返回值存在當(dāng)前配置的pojo時,可以在model頁面看到這些信息。

@Data
@NoArgsConstructor
@AllArgsConstructor
@ApiModel("用戶類" )
public class User {

    @ApiModelProperty("用戶名")
    private String username;

    @ApiModelProperty("密碼")
    private String password;

}

4.2、Controller的配置

Controller的名稱將會展示為tags屬性中的值

@Controller
@Api(tags = "路由控制類")
public class RouterController {
	
}

4.3、接口名稱的配置

@PostMapping("/user")
@ResponseBody
@ApiOperation("返回用戶信息")			//接口名稱、以及參數(shù)
public User sendUserMessage(@ApiParam("用戶帳號") String username){
    System.out.println(username);
    return new User("admin", "123456");
}

4.4、效果圖

在這里插入圖片描述

到此這篇關(guān)于SpringBoot整合Swagger3的流程詳解的文章就介紹到這了,更多相關(guān)SpringBoot整合Swagger3內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 解決String字符串轉(zhuǎn)JSONObject順序不對的問題

    解決String字符串轉(zhuǎn)JSONObject順序不對的問題

    這篇文章主要介紹了解決String字符串轉(zhuǎn)JSONObject順序不對的問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-12-12
  • SpringBoot2.0 中 HikariCP 數(shù)據(jù)庫連接池原理解析

    SpringBoot2.0 中 HikariCP 數(shù)據(jù)庫連接池原理解析

    這篇文章主要介紹了SpringBoot2.0 中 HikariCP 數(shù)據(jù)庫連接池原理解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-01-01
  • Java排序算法中的快速排序算法實(shí)現(xiàn)

    Java排序算法中的快速排序算法實(shí)現(xiàn)

    這篇文章主要介紹了Java排序算法中的快速排序算法實(shí)現(xiàn),通過一趟排序?qū)⒁判虻臄?shù)據(jù)分割成獨(dú)立的兩部分,其中一部分的所有數(shù)據(jù)都比另外一部分的所有數(shù)據(jù)都要小,然后再按此方法對這兩部分?jǐn)?shù)據(jù)分別進(jìn)行快速排序,需要的朋友可以參考下
    2023-12-12
  • Java版的7種單例模式寫法示例

    Java版的7種單例模式寫法示例

    這篇文章主要給大家介紹了關(guān)于Java版的7種單例模式寫法,文中通過示例代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用Java具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-10-10
  • Spring Security OAuth過期的解決方法

    Spring Security OAuth過期的解決方法

    這篇文章主要介紹了Spring Security OAuth過期的解決方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-09-09
  • Java十大經(jīng)典排序算法圖解

    Java十大經(jīng)典排序算法圖解

    這篇文章主要介紹了Java十大經(jīng)典排序算法,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-11-11
  • AgileBoot?項(xiàng)目內(nèi)統(tǒng)一的錯誤碼設(shè)計(jì)分析

    AgileBoot?項(xiàng)目內(nèi)統(tǒng)一的錯誤碼設(shè)計(jì)分析

    這篇文章主要為大家介紹了AgileBoot?項(xiàng)目內(nèi)統(tǒng)一的錯誤碼設(shè)計(jì)分析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-10-10
  • 如何使用Idea搭建全注解式開發(fā)的SpringMVC項(xiàng)目

    如何使用Idea搭建全注解式開發(fā)的SpringMVC項(xiàng)目

    這篇文章主要介紹了如何使用Idea搭建全注解式開發(fā)的SpringMVC項(xiàng)目,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-03-03
  • 分布式下實(shí)現(xiàn)配置管理方式

    分布式下實(shí)現(xiàn)配置管理方式

    分布式配置管理平臺是為了解決配置管理問題而出現(xiàn)的,它能夠?qū)崟r管理配置信息,確保配置的實(shí)時性和高可用性,配置管理平臺通?;谕扑?訂閱模式,客戶端訂閱配置信息,配置中心負(fù)責(zé)推送配置數(shù)據(jù),常見的分布式配置管理平臺包括Apollo、Diamond和Disconf
    2024-12-12
  • 使用SpringBoot+nmap4j獲取端口信息的代碼詳解

    使用SpringBoot+nmap4j獲取端口信息的代碼詳解

    這篇文章主要介紹了使用 SpringBoot + nmap4j 獲取端口信息,包括需求背景、nmap4j 的相關(guān)介紹、代碼說明(含測試代碼、改造后的代碼及參數(shù)說明),還提到了文件讀取方式和依賴引入方式,最終請求能獲取到數(shù)據(jù),需要的朋友可以參考下
    2025-01-01

最新評論