亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Java SpringBoot詳解集成以及配置Swagger流程

 更新時間:2021年10月27日 09:47:45   作者:龍弟-idea  
Swagger 是一個規(guī)范和完整的框架,用于生成、描述、調(diào)用和可視化 RESTful 風(fēng)格的 Web 服務(wù)??傮w目標(biāo)是使客戶端和文件系統(tǒng)作為服務(wù)器以同樣的速度來更新。文件的方法,參數(shù)和模型緊密集成到服務(wù)器端的代碼,允許API來始終保持同步

一、swagge簡介

前后端分離:

后端︰后端控制層,服務(wù)層,數(shù)據(jù)訪問層【后端團隊】

前端:前端控制層,視圖層【前端團隊】

前后端通過API進行交互

前后端相對獨立且松耦合

產(chǎn)生問題:前后端集成,前端或者后端無法做到“及時協(xié)商,盡早解決”,最終導(dǎo)致問題集中爆發(fā)

解決方法:首先定義schema [ 計劃的提綱 ],并實時跟蹤最新的API,降低集成風(fēng)險

前后端分離: 前端測試后端接口:postman
后端提供接口,需要實時更新最新的消息及改動!

Swagger

  • 號稱世界上最流行的API框架
  • Restful Api 文檔在線自動生成器 => API 文檔 與API 定義同步更新
  • 直接運行,在線測試API
  • 支持多種語言 (如:Java,PHP等)
  • 官網(wǎng):API Documentation & Design Tools for Teams | Swagger

二、SpringBoot集成Swagger

1、新建一個SpringBoot-web項目

2、添加Maven依賴

<!-- https://mvnrepository.com/artifact/io.springfox/springfox-swagger2 -->
<dependency>
   <groupId>io.springfox</groupId>
   <artifactId>springfox-swagger2</artifactId>
   <version>2.9.2</version>
</dependency>
<!-- https://mvnrepository.com/artifact/io.springfox/springfox-swagger-ui -->
<dependency>
   <groupId>io.springfox</groupId>
   <artifactId>springfox-swagger-ui</artifactId>
   <version>2.9.2</version>
</dependency>

3、編寫HelloController,測試確保運行成功!

4、要使用Swagger,我們需要編寫一個配置類-SwaggerConfig來配置 Swagger

@Configuration
@EnableSwagger2        //開啟Swagger2
public class SwaggerConfig {
    
}

5.訪問測試 :http://localhost:8081/swagger-ui.html,可以看到swagger的界面;

三、配置Swagger

1、Swagger實例Bean是Docket,所以通過配置Docket實例來配置Swaggger。

//配置了Swagger的Docket的bean實例
    @Bean
    public Docket docket(){
        return new Docket(DocumentationType.SWAGGER_2);
 
    }

2、可以通過apiInfo()屬性配置文檔信息

    //配置文檔信息
    private ApiInfo apiInfo() {
        Contact contact = new Contact("龍弟", "https://blog.csdn.net/weixin_48838340", "聯(lián)系人郵箱");
        return new ApiInfo(
                "龍弟的Swagger學(xué)習(xí)文檔", // 標(biāo)題
                "學(xué)習(xí)演示如何配置Swagger", // 描述
                "v1.0", // 版本
                "https://blog.csdn.net/weixin_48838340", // 組織鏈接
                contact, // 聯(lián)系人信息
                "Apach 2.0 許可", // 許可
                "許可鏈接", // 許可連接
                new ArrayList<>()// 擴展
        );
    }
}

3、Docket 實例關(guān)聯(lián)上 apiInfo()

    @Bean
    public Docket docket(){
        return new Docket(DocumentationType.SWAGGER_2).apiInfo(apiInfo());
    }

4.重啟項目

四、配置掃描接口

構(gòu)建Docket時通過select()方法配置怎么掃描接口。

    //配置了Swagger的Docket的bean實例
    @Bean
    public Docket docket(){
        return new Docket(DocumentationType.SWAGGER_2)
                .apiInfo(apiInfo())
                .select()// 通過.select()方法,去配置掃描接口,RequestHandlerSelectors配置如何掃描接口
                  //any() // 掃描所有,項目中的所有接口都會被掃描到
                 // none() // 不掃描接口
        // withMethodAnnotation通過方法上的注解掃描,如withMethodAnnotation(GetMapping.class)只掃描get請求
        // 通過類上的注解掃描,如.withClassAnnotation(Controller.class)只掃描有controller注解的類中的接口
                .apis(RequestHandlerSelectors.basePackage("com.longdi.swagger.controller"))
                //path()  過濾什么路徑
                .paths(PathSelectors.ant("/longdi/**"))
                .build();
    };

五、配置Swagger開關(guān)

1、通過enable()方法配置是否啟用swagger

    @Bean
    public Docket docket() {
        return new Docket(DocumentationType.SWAGGER_2)
                .apiInfo(apiInfo())
                .enable(false) //配置是否啟用Swagger,如果是false,在瀏覽器將無法訪問
                .select()// 通過.select()方法,去配置掃描接口,RequestHandlerSelectors配置如何掃描接口
                .apis(RequestHandlerSelectors.basePackage("com.longdi.swagger.controller"))
                // 配置如何通過path過濾,即這里只掃描請求以/longdi開頭的接口
                .paths(PathSelectors.ant("/longdi/**"))
                .build();
    }

2.如何動態(tài)配置當(dāng)項目處于test、dev環(huán)境時顯示swagger

    @Bean
    public Docket docket(Environment environment) {
        // 設(shè)置要顯示swagger的環(huán)境
        Profiles of = Profiles.of("dev", "test");
        // 判斷當(dāng)前是否處于該環(huán)境
        // 通過 enable() 接收此參數(shù)判斷是否要顯示
        boolean b = environment.acceptsProfiles(of);
 
        return new Docket(DocumentationType.SWAGGER_2)
                .apiInfo(apiInfo())
                .enable(b) //配置是否啟用Swagger,如果是false,在瀏覽器將無法訪問
                .select()// 通過.select()方法,去配置掃描接口,RequestHandlerSelectors配置如何掃描接口
                .apis(RequestHandlerSelectors.basePackage("com.longdi.swagger.controller"))
                // 配置如何通過path過濾,即這里只掃描請求以/longdi開頭的接口
                .paths(PathSelectors.ant("/longdi/**"))
                .build();
    }

六、配置API分組

1.如果沒有配置分組,默認(rèn)是default。通過groupName()方法即可配置分組:

    @Bean
    public Docket docket1(Environment environment) {
        return new Docket(DocumentationType.SWAGGER_2).apiInfo(apiInfo())
                .groupName("A") ;// 配置分組
        // 省略配置....
    }

2.配置多個分組只需要配置多個docket即可

3.重啟看到下面效果

七、實體配置

1.新建一個實體類

@ApiModel為類添加注釋

@ApiModelProperty為類屬性添加注釋

2.只要這個實體在請求接口的返回值上(即使是泛型),都能映射到實體項中:

    //只要我們的接口中,返回值中存在實體類,它就會被掃描到Swagger中
    @PostMapping(value="/user")
    public User getUser(){
        return new User();
    }

3.查看效果

4.可以給請求的接口配置一些注釋

    //Operation接口,不是放在類上的,是方法
    @ApiOperation("龍弟的接口")
    @GetMapping("/hello2")
    public String kuang(@ApiParam("這個名字會被返回")String username){
        return "hello"+username;
    }

八、總結(jié):

1.我們可以通過Swagger給一些比較難理解的屬性或者接口,增加注釋信息

2接口文檔實時更新
3.可以在線測試

Swagger是一個優(yōu)秀的工具,幾乎所有大公司都有使用它

【注意點】在正式發(fā)布的時候,需要關(guān)閉Swagger! 因為出于安全考慮,同時節(jié)省運行的內(nèi)存!

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

相關(guān)文章

  • Mybatis中使用updateBatch進行批量更新

    Mybatis中使用updateBatch進行批量更新

    這篇文章主要介紹了Mybatis中使用updateBatch進行批量更新的相關(guān)資料,有逐條更新,sql批量更新等,具體實例代碼大家參考下本文
    2018-04-04
  • SpringBoot優(yōu)化接口響應(yīng)時間的九個技巧

    SpringBoot優(yōu)化接口響應(yīng)時間的九個技巧

    在實際開發(fā)中,提升接口響應(yīng)速度是一件挺重要的事,特別是在面臨大量用戶請求的時候,本文為大家整理了9個SpringBoot優(yōu)化接口響應(yīng)時間的技巧,希望對大家有所幫助
    2024-01-01
  • springboot整合mybatis plus與druid詳情

    springboot整合mybatis plus與druid詳情

    這篇文章主要介紹了springboot整合mybatis plus與druid詳情,文章圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價值,需要的下伙伴可以參考一下
    2022-09-09
  • springmvc視圖解析流程代碼實例

    springmvc視圖解析流程代碼實例

    這篇文章主要介紹了springmvc視圖解析流程代碼實例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-01-01
  • Java異常日志堆棧丟失的原因與排查

    Java異常日志堆棧丟失的原因與排查

    這篇文章主要給大家介紹了關(guān)于Java異常日志堆棧丟失的原因與排查的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-11-11
  • 排序算法的Java實現(xiàn)全攻略

    排序算法的Java實現(xiàn)全攻略

    這篇文章主要介紹了排序算法的Java實現(xiàn),包括Collections.sort()的使用以及各種經(jīng)典算法的Java代碼實現(xiàn)方法總結(jié),超級推薦!需要的朋友可以參考下
    2015-08-08
  • java面試應(yīng)用上線后Cpu使用率飆升如何排查

    java面試應(yīng)用上線后Cpu使用率飆升如何排查

    這篇文章主要為大家介紹了java面試中應(yīng)用上線后Cpu使用率飆升如何排查的方法示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-07-07
  • Java 面向?qū)ο蟮奶卣鹘馕雠c應(yīng)用

    Java 面向?qū)ο蟮奶卣鹘馕雠c應(yīng)用

    Java 是面向?qū)ο蟮木幊陶Z言,對象就是面向?qū)ο蟪绦蛟O(shè)計的核心。所謂對象就是真實世界中的實體,對象與實體是一一對應(yīng)的,也就是說現(xiàn)實世界中每一個實體都是一個對象,它是一種具體的概念
    2021-11-11
  • java內(nèi)存模型jvm虛擬機簡要分析

    java內(nèi)存模型jvm虛擬機簡要分析

    Java 內(nèi)存模型的主要目的是定義程序中各種變量的訪問規(guī)則, 關(guān)注在虛擬機中把變量值存儲到內(nèi)存和從內(nèi)存中取出變量值這樣的底層細(xì)節(jié)
    2021-09-09
  • SpringBoot在自定義類中調(diào)用service層等Spring其他層操作

    SpringBoot在自定義類中調(diào)用service層等Spring其他層操作

    這篇文章主要介紹了SpringBoot在自定義類中調(diào)用service層等Spring其他層操作,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-06-06

最新評論