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

Swagger實現(xiàn)動態(tài)條件注入與全局攔截功能詳細流程

 更新時間:2023年01月30日 10:50:06   作者:畢小寶  
這篇文章主要介紹了Swagger實現(xiàn)動態(tài)條件注入與全局攔截功能詳細流程,Swagger 可以提供 API 操作的測試文檔,本文記錄 Swagger 使用過程中遇到的小問題

背景

Swagger 可以提供 API 操作的測試文檔,本文記錄 Swagger 使用過程中遇到的兩個小問題:

  • 全局響應結果進行包裝后導致 Swagger 請求響應結果無法解析,如果項目中配置了 ResponseBodyAdvice 實現(xiàn)類,重寫了 beforeBodyWrite 方法對響應結果進行統(tǒng)一時,應該排除 Swagger2 的兩個 URL v2/api-docsswagger-resources
  • Swagger 注入條件區(qū)分測試和生產(chǎn)環(huán)境的配置的 ETL 不同語法對默認無配置的處理結果。

Swagger2 使用流程

Swagger 用法很簡單,加入引用,一個配置就可以為應用提供接口測試界面。

第一步,引入依賴。

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
    <groupId>io.springfox</groupId>
    <artifactId>springfox-swagger2</artifactId>
    <version>2.9.2</version>
</dependency>
<dependency>
    <groupId>io.springfox</groupId>
    <artifactId>springfox-swagger-ui</artifactId>
    <version>2.9.0</version>
</dependency>
<dependency>
    <groupId>com.github.xiaoymin</groupId>
    <artifactId>swagger-bootstrap-ui</artifactId>
    <version>1.8.5</version>
</dependency>

第二步,添加 Swagger 配置類。

@Configuration
@EnableSwagger2
@EnableSwaggerBootstrapUI
@ConditionalOnExpression("'${swagger.enable}'.equalsIgnoreCase('true')")
public class Swagger2Config {
    @Bean
    public Docket createRestApi() {
        return new Docket(DocumentationType.SWAGGER_2)
                .apiInfo(apiInfo())
                .select()
                .apis(RequestHandlerSelectors.withMethodAnnotation(ApiOperation.class))
                .paths(PathSelectors.any())
                .build();
    }
    private ApiInfo apiInfo() {
        return new ApiInfoBuilder()
                .title("XXX 文檔")
                .version("1.0")
                .build();
    }
}

第三步,為 Web 請求設置 Api 配置。

@GetMapping("/set")
@ApiOperation(value = "設置 Session")
public Object Index(HttpServletRequest request){
    request.getSession().setAttribute("userUid", "111111");
    return request.getSession().getAttribute("userUid");
}

條件配置分析

@ConditionalOnExpression("'${swagger.enable}'.equalsIgnoreCase('true')")

這種方式,表達式成立的條件有兩項 swagger.enable 必須配置,且值為 true 時,才會成立。

另外一種寫法:

@ConditionalOnExpression("${swagger.enable:true}")

如果未配置屬性 swagger.enable,那么根據(jù) ConditionalOnExpression 注解的默認值是 true ,所以就會執(zhí)行注解配置。

啟示錄

為了方便開發(fā)測試,默認無配置時視為滿足條件,生產(chǎn)環(huán)境下配置值為 false 是可以的。

到此這篇關于Swagger實現(xiàn)動態(tài)條件注入與全局攔截功能詳細流程的文章就介紹到這了,更多相關Swagger動態(tài)條件注入內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • SpringBoot創(chuàng)建動態(tài)定時任務的幾種方式小結

    SpringBoot創(chuàng)建動態(tài)定時任務的幾種方式小結

    SpringBoot提供了多種實現(xiàn)定時任務的方式,包括使用@Scheduled注解、SchedulingConfigurer接口、TaskScheduler接口和Quartz框架,@Scheduled適合簡單的定時任務,文中通過代碼示例介紹的非常詳細,需要的朋友可以參考下
    2024-10-10
  • Java實現(xiàn)二叉查找樹的增刪查詳解

    Java實現(xiàn)二叉查找樹的增刪查詳解

    二叉查找樹(ADT)是一個具有對于樹種的某個節(jié)點X,它的左節(jié)點都比X小,它的右節(jié)點都比X大的二叉樹。本文將用Java實現(xiàn)二叉查找樹的增刪查,需要的可以參考一下
    2022-06-06
  • java 與web服務器鏈接的實例

    java 與web服務器鏈接的實例

    這篇文章主要介紹了java 與web服務器鏈接的實例的相關資料,使用net.Socket類sock.getInetAddress()方法獲得與Web服務器連接,需要的朋友可以參考下
    2017-07-07
  • GSON實現(xiàn)Java對象與JSON格式對象相互轉換的完全教程

    GSON實現(xiàn)Java對象與JSON格式對象相互轉換的完全教程

    GSON是Google編寫并在在GitHub上開源的Java序列化與反序列化JSON的類庫,今天我們就來總結一下使用GSON實現(xiàn)Java對象與JSON格式對象相互轉換的完全教程
    2016-06-06
  • java構造器復用方式

    java構造器復用方式

    這篇文章主要介紹了java構造器復用方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-03-03
  • gradle安裝配置以及使用最新方法

    gradle安裝配置以及使用最新方法

    這篇文章主要給大家介紹了關于gradle安裝配置以及使用的相關資料,Gradle是一個基于ApacheAnt和ApacheMaven概念的項目自動化構建開源工具,文中通過圖文介紹的非常詳細,需要的朋友可以參考下
    2023-11-11
  • 使用Java生成JWT令牌的示例代碼

    使用Java生成JWT令牌的示例代碼

    json-web-token簡稱java web令牌,也稱作JWT,是一種可以實現(xiàn)跨域身份驗證身份的方案,jwt不加密傳輸數(shù)據(jù),但能夠通過數(shù)據(jù)前面驗證數(shù)據(jù)的未被篡改,本文給大家介紹了如何使用Java生成JWT令牌,需要的朋友可以參考下
    2024-04-04
  • springboot 自定義權限標簽(tld),在freemarker引用操作

    springboot 自定義權限標簽(tld),在freemarker引用操作

    這篇文章主要介紹了springboot 自定義權限標簽(tld),在freemarker引用操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-09-09
  • Java中map內(nèi)部存儲方式解析

    Java中map內(nèi)部存儲方式解析

    這篇文章主要介紹了Java中map內(nèi)部存儲方式解析的相關內(nèi)容,涉及其實現(xiàn)方式,以及對存儲方式作了簡單的比較,具有一定參考價值,需要的朋友可了解下。
    2017-10-10
  • 詳解Java中的不可變對象

    詳解Java中的不可變對象

    這篇文章主要介紹了Java中的不可變對象的相關知識,文中代碼非常詳細,幫助大家更好的理解和學習,感興趣的朋友可以參考下
    2020-06-06

最新評論