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

Swagger實(shí)現(xiàn)動(dòng)態(tài)條件注入與全局?jǐn)r截功能詳細(xì)流程

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

背景

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

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

Swagger2 使用流程

Swagger 用法很簡(jiǎn)單,加入引用,一個(gè)配置就可以為應(yīng)用提供接口測(cè)試界面。

第一步,引入依賴。

<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 請(qǐng)求設(shè)置 Api 配置。

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

條件配置分析

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

這種方式,表達(dá)式成立的條件有兩項(xiàng) swagger.enable 必須配置,且值為 true 時(shí),才會(huì)成立。

另外一種寫法:

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

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

啟示錄

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

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

相關(guān)文章

  • SpringBoot創(chuàng)建動(dòng)態(tài)定時(shí)任務(wù)的幾種方式小結(jié)

    SpringBoot創(chuàng)建動(dòng)態(tài)定時(shí)任務(wù)的幾種方式小結(jié)

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

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

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

    java 與web服務(wù)器鏈接的實(shí)例

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

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

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

    java構(gòu)造器復(fù)用方式

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

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

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

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

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

    springboot 自定義權(quán)限標(biāo)簽(tld),在freemarker引用操作

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

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

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

    詳解Java中的不可變對(duì)象

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

最新評(píng)論