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

SpringBoot項目中使用Swagger2及注解解釋的詳細教程

 更新時間:2023年04月03日 10:51:51   作者:nianyuw  
Swagger2是一個開源項目,用于為RESTful Web服務(wù)生成REST API文檔,下面這篇文章主要給大家介紹了關(guān)于SpringBoot項目中使用Swagger2及注解解釋的詳細教程,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下

一、導(dǎo)入Swagger坐標(biāo)依賴

<dependency>
    <groupId>io.springfox</groupId>
    <artifactId>springfox-swagger2</artifactId>
    <version>${swagger.version}</version>
</dependency>
<dependency>
    <groupId>io.springfox</groupId>
    <artifactId>springfox-swagger-ui</artifactId>
    <version>${swagger.version}</version>
</dependency>

其中版本最常用2.9.2

二、在spring啟動類添加注解@EnableSwagger2

@EnableSwagger2是springfox提供的一個注解,代表swagger2相關(guān)技術(shù)開啟。會掃描當(dāng)前類所在包,及子包中所有類型的swagger相關(guān)注解,做swagger文檔的定制

三、啟動項目,查看swaggerui.html界面

這是我開發(fā)項目的地址,訪問后可以看到swaggerui.html

http://localhost:9527/swagger-ui.html

image-20220813205539273

image-20220813212309718

點擊try it out可以輸入對應(yīng)的參數(shù)查看返回結(jié)果

四,編寫SwaggerConfig配置文件

@EnableSwagger2
@Configuration
public class SwaggerConfig {
    @Autowired
    private ApplicationContext applicationContext;

    private Contact contact = new Contact("NIUA","localhost:8080/swagger-ui.html", "1053288979@qq.com");

    @Bean
    public Docket createRestApi() {
        ServletContext servletContext = applicationContext.getBean(ServletContext.class);
        return new Docket(DocumentationType.SWAGGER_2)
                .select()
                .apis(RequestHandlerSelectors.any())
                .paths(Predicates.not(regex("/error.*")))
                .build()
                .apiInfo(apiInfo());
    }

    private ApiInfo apiInfo() {
        return new ApiInfoBuilder()
                .title("平臺接口 v1.0")
                .description("平臺接口")
                .contact(contact)
                .version("1.0")
                .build();
    }
}
@Bean
    public Docket createRestApi() {
        ServletContext servletContext = applicationContext.getBean(ServletContext.class);
        return new Docket(DocumentationType.SWAGGER_2)
                .select()
                .apis(RequestHandlerSelectors.any())
                .paths(Predicates.not(regex("/error.*")))
                .build()
                .apiInfo(apiInfo());
    }

創(chuàng)建Docker類型的對象,并使用spring容器管理。Docker是Swagger中的全局配置對象

DocumentationType.SWAGGER_2:給Docket一個類對象,知道是那一個版本的

apiInfo():API文檔的描述信息,參數(shù)是一個ApiInfo類對象,使用bulid()構(gòu)建器來創(chuàng)建

private ApiInfo apiInfo() {
       return new ApiInfoBuilder()
               .title("平臺接口 v1.0")
               .description("平臺接口")
               .contact(contact)
               .version("1.0")
               .build();
   }

contact():配置swagger文檔的主體內(nèi)容,里面填寫也是一個類對象,類對象最多可以三個參數(shù),發(fā)布者名稱,文檔發(fā)布者的網(wǎng)站url地址(企業(yè)網(wǎng)站),文檔發(fā)布者的電子郵箱地址

private Contact contact = new Contact("NIUA","localhost:8080/swagger-ui.html", "1053288979@qq.com");

title():標(biāo)題 description():描述信息 .version():版本信息

對應(yīng)如下內(nèi)容

image-20220813230037907

select():獲取Docker中的選擇器,返回ApiSelectorBuilder。構(gòu)建選擇器。如掃描什么包的注解

apis():后面是RequestHandlerSelectors的類下的(Predicate)規(guī)則,規(guī)定掃描那些包的注解,默認是啟動類及其子包下的注解

RequestHandlerSelectors類下有幾個靜態(tài)方法(舉例三個)

basePackage():后面填寫包名的具體地址,會掃描改包及其子包的注解

docker.apis(RequestHandlerSelectors.basePackage("com.xxx"))

any():為任何接口生成API文檔

none():任何接口都不生成接口文檔

path():使用正則表達式,約束生成Api文檔的路徑地址,后面填寫過濾(通過)的路徑

//過濾掉admin路徑下的所有頁面
.paths(Predicates.not(PathSelectors.regex("/admin/.*")))
//過濾掉所有error或error.*頁面
.paths(Predicates.not(PathSelectors.regex("/error.*")))

//所有error或error.*頁面或者admin路徑下的所有頁面都支持(or任意滿足起一就通過)
.paths(Predicates.or(PathSelectors.regex("/error.*"),PathSelectors.regex("/admin/.*")))

五:Swagger支持自定義注解

這里沒有提及,感興趣可以自己搜索(留個位置,日后用到了補充)

六:Swagger2常用注解

@Api(常用)

作用:@Api是類上注解??刂普麄€類生成接口信息的內(nèi)容

屬性

tags:類的名稱??梢杂卸鄠€值,多個值表示多個副本(別名),有幾個別名在swaggerui視圖上顯示幾個控制器訪問菜單

description:描述,已過時

image-20220814000715865

@ApiOperation

作用:@ApiOperation是方法上注解,描述方法的相關(guān)消息

屬性

value:方法描述作用

notes:方法筆記(展開描述)

image-20220814001241700

@ApiParm

作用:@ApiParm是方法參數(shù)的注解。描述該參數(shù)

屬性

name:參數(shù)名稱

value:描述參數(shù)作用

required:值為boolean類型,表示該參數(shù)是否為必要參數(shù),默認為false

@ApiIgnore

作用:@ApiParm是方法或者參數(shù)的注解。忽略注解的方法或者參數(shù),不生成幫助文檔

image-20220814002442974

@ApiImplicitParam(常用)

作用@ApiParm是作用于類上方法,用來描述方法參數(shù)的注解。

屬性

name:參數(shù)名稱,和方法的參數(shù)一致

value:參數(shù)具體描述

required:值為boolean類型,表示該參數(shù)是否為必要參數(shù),默認為false

paramType:參數(shù)類型

paramType="字符串"
paramType = "header"

dataType:數(shù)據(jù)類型

dataType = "string"  //字符串?dāng)?shù)據(jù)
dataType = "鍵值對" 

image-20220814002946956

@ApiImplicitParams

后面跟@ApiImplicitParam的集合,一般用于多個參數(shù)的描述

@ApiImplicitParams({@ApiImplicitParam(name = "Authorization", value = "Authorization token", required = true, dataType = "string", paramType = "header")})

@ApiModel(常用)

作用@ApiModel是作用于實體類上,描述一個實體類型,整個實體類型如果成為任何一個生成api幫助文檔的返回對象的時候,該注解被解析

屬性

value:實體類名稱

description:實體類描述

@ApiModelProperty(常用)

作用@ApiModel是作用于實體類的屬性上,描述實體類屬性

屬性

value:實體屬性描述

name:實體類屬性名字,與屬性名一致

總結(jié)

到此這篇關(guān)于SpringBoot項目中使用Swagger2及注解解釋的文章就介紹到這了,更多相關(guān)SpringBoot使用Swagger2內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • java中HashMap的原理分析

    java中HashMap的原理分析

    HashMap在Java開發(fā)中有著非常重要的角色地位,每一個Java程序員都應(yīng)該了解HashMap。詳細地闡述HashMap中的幾個概念,并深入探討HashMap的內(nèi)部結(jié)構(gòu)和實現(xiàn)細節(jié),討論HashMap的性能問題
    2016-03-03
  • Java實現(xiàn)簡單臺球游戲

    Java實現(xiàn)簡單臺球游戲

    這篇文章主要為大家詳細介紹了Java實現(xiàn)簡單臺球游戲,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-07-07
  • Java常見踩坑記錄之異常處理

    Java常見踩坑記錄之異常處理

    程序運行時發(fā)生的不被期望的事件,它阻止了程序按照程序員的預(yù)期正常執(zhí)行,這就是異常,下面這篇文章主要給大家介紹了關(guān)于Java常見踩坑記錄之異常處理的相關(guān)資料,需要的朋友可以參考下
    2022-01-01
  • Java注冊郵箱激活驗證實現(xiàn)代碼

    Java注冊郵箱激活驗證實現(xiàn)代碼

    這篇文章主要介紹了Java注冊郵箱激活驗證實現(xiàn)代碼,有需要的朋友可以參考一下
    2013-12-12
  • springboot+vue+elementsUI實現(xiàn)分角色注冊登錄界面功能

    springboot+vue+elementsUI實現(xiàn)分角色注冊登錄界面功能

    這篇文章主要給大家介紹了關(guān)于springboot+vue+elementsUI實現(xiàn)分角色注冊登錄界面功能的相關(guān)資料,Spring?Boot和Vue.js是兩個非常流行的開源框架,可以用來構(gòu)建Web應(yīng)用程序,需要的朋友可以參考下
    2023-07-07
  • springboot mybatis druid配置多數(shù)據(jù)源教程

    springboot mybatis druid配置多數(shù)據(jù)源教程

    這篇文章主要介紹了springboot mybatis druid配置多數(shù)據(jù)源教程,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-11-11
  • Java二分查找算法與數(shù)組處理的應(yīng)用實例

    Java二分查找算法與數(shù)組處理的應(yīng)用實例

    二分查找法,又叫做折半查找法,它是一種效率較高的查找方法。數(shù)組對于每一門編程語言來說都是重要的數(shù)據(jù)結(jié)構(gòu)之一,當(dāng)然不同語言對數(shù)組的實現(xiàn)及處理也不盡相同。Java 語言中提供的數(shù)組是用來存儲固定大小的同類型元素
    2022-07-07
  • Java?-jar參數(shù)詳解之掌握Java可執(zhí)行JAR文件的運行技巧

    Java?-jar參數(shù)詳解之掌握Java可執(zhí)行JAR文件的運行技巧

    做項目的時候我們肯定接觸過很多jar包,下面這篇文章主要給大家介紹了關(guān)于Java?-jar參數(shù)詳解之掌握Java可執(zhí)行JAR文件的運行技巧,文中通過代碼介紹的非常詳細,需要的朋友可以參考下
    2023-11-11
  • Feign Client 超時時間配置不生效的解決

    Feign Client 超時時間配置不生效的解決

    這篇文章主要介紹了Feign Client 超時時間配置不生效的解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-09-09
  • SpringBoot中的@ControllerAdvice注解原理詳解

    SpringBoot中的@ControllerAdvice注解原理詳解

    這篇文章主要介紹了SpringBoot中的@ControllerAdvice注解原理詳解,在SpringBoot應(yīng)用程序啟動過程中,Spring會掃描所有的類,尋找?guī)в蠤ControllerAdvice注解的類這些方法會被添加到一個映射表中,以便后續(xù)處理異常時能找到對應(yīng)的處理方法,需要的朋友可以參考下
    2024-01-01

最新評論