SpringBoot整合Swagger(五)動態配製Swagger的開關 | Java隨筆記
theme: scrolls-light
「這是我參與11月更文挑戰的第21天,活動詳情檢視:2021最後一次更文挑戰」
相關文章
Java隨筆記:Java隨筆記
前言
- 一直都在講如何過濾,不知道大家有沒有考慮過一個問題。
- 我們在工作中,也就是實際開發中,一般都是分環境的,總不能線上也搞個Swagger展示出來吧?
- 一般都是開發環境才需要配製Swagger,方便前後端聯調。
- 那麼,如何動態配製Swagger的開關呢?
動態Swagger開關
-
前面講過的
Docket
類還有印象吧?他裡面有這麼一個方法 -
/** * Hook to externally control auto initialization of this swagger plugin instance. * Typically used if defer initialization. * * @param externallyConfiguredFlag - true to turn it on, false to turn it off * @return this Docket */ public Docket enable(boolean externallyConfiguredFlag) { this.enabled = externallyConfiguredFlag; return this; }
-
看下預設值
-
也就是說,我們前面不設定
enable
的話,預設是開啟的。 -
整合
yml
配製檔案來動態開關 -
關於如何配製動態
yml
配置檔案可以點這裡 如何將application配置檔案玩出花樣來?| SpringBoot系列(二) -
在此關於這個不在贅述
-
首先建立兩個
yml
檔案 -
建立實體類
SwaggerModel
通過@ConfigurationProperties(prefix = "")
接受配置檔案的資訊@Data @Component @ConfigurationProperties(prefix = "swagger") public class SwaggerModel { private boolean enable; }
-
SwaggerConfig
改造@Configuration //配置類 @EnableSwagger2// 開啟Swagger2的自動配置 public class SwaggerConfig { @Autowired private SwaggerModel swaggerModel;//讀取配置檔案的內容!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! @Bean public Docket docket(){ return new Docket(DocumentationType.SWAGGER_2) .apiInfo(apiInfo()) .enable(swaggerModel.isEnable())//這裡是改造重點!!!!!!!!!!!!!!!!!!!!!!!!!!!! .select() .paths(PathSelectors.any())) .build(); } //配置文件資訊 private ApiInfo apiInfo() { Contact contact = new Contact("大魚", "http://juejin.cn/user/2084329779387864/posts", "[email protected]"); return new ApiInfo( "大魚隨筆記", // 標題 "Swagger的學習", // 描述 "v1.0", // 版本 "http://juejin.cn/user/2084329779387864/posts", // 組織連結 contact, // 聯絡人資訊 "Apach 2.0 許可", // 許可 "http://juejin.cn/user/2084329779387864/posts", // 許可連線 new ArrayList<>()// 擴充套件 ); } }
-
到此我們先指定
dev
環境啟動看看,理論上開啟Swagger
的 -
結果如下:
-
完美!
- 指定
prod
啟動 - 結果如下:
- 完美符合我們的要求!
總結
-
其實這種玩法主要有三個知識點:
- ①、動態配置檔案
- ②、
@ConfigurationProperties
註解讀取配置檔案的資訊 - ③、
Swagger
的開關
-
以上都是個人所言,如有不對,歡迎指出。
-
如果對您有幫助,希望給我點個贊點個關注唄!咱們明天繼續
Swagger
的講解! -
預告:
Swagger
實體的配置詳解
路漫漫其修遠兮,吾必將上下求索~
如果你認為i博主寫的不錯!寫作不易,請點贊、關注、評論給博主一個鼓勵吧~hahah
- 2021已逝,2022我來了 | 2021年終總結
- SpringBoot整合Swagger(十一)常用註解介紹 | Java隨筆記
- SpringBoot整合Swagger(十)常用註解介紹 | Java隨筆記
- 將數字變成 0 的操作次數 | LeetCode刷題筆記
- SpringBoot整合Swagger(九)給你的Swagger換個面板吧 | Java隨筆記
- SpringBoot整合Swagger(八)@ApiModelProperty()註解一擼到底 | Java隨筆記
- SpringBoot整合Swagger(七)@ApiModel()註解一通百通 | Java隨筆記
- SpringBoot整合Swagger(六)玩轉groupName()分組 | Java隨筆記
- SpringBoot整合Swagger(五)動態配製Swagger的開關 | Java隨筆記
- SpringBoot整合Swagger(三)paths()介面過濾 | Java隨筆記
- 隨機數實現撲克牌洗牌 | Java隨筆記
- 線上出問題?遠端DeBug會嗎?| Java隨筆記
- Widows和Linux下如何安裝MySQL | MySQL(前傳)
- Ubuntu新增root使用者和開啟遠端登陸 | Java隨筆記
- Ubuntu16.04上安裝jdk1.8 | Java隨筆記
- Java函式和陣列 | Java隨筆記
- 程式設計師最喜歡的一句話?當然是New物件啦~ | Java隨筆記
- MyBatis中使用foreach批量插入並且返回自增id | MyBatis系列(小技巧一)
- 操作資料庫和資料表 | MySQL(一)基礎
- @Value註解讀取配置檔案中的內容 | Java隨筆記