SpringBoot2.x系列教程(五十六)SpringBoot集成Swagger2中不同環境開關配置

在前面的文章中我們介紹了Spring Boot如何集成Swagger2及訪問權限的控制 。又有一個問題出現了,Swagger2雖然好用,但也不能發佈到生產環境吧。

那麼,針對該問題,本篇文章爲大家提供三種解決方案。選擇最適合你的即可。

方案一:根據條件判斷的方式

此中方式最常見,在配置文件中配置一個標識,比如:

swagger:
  show : false

在不需要的環境時,直接設置爲false即可。比如dev和test環境的配置文件中設置爲true,prod環境中的配置文件設置爲false。這些設置與數據庫等環境的配置類似。

swagger:
  show : true

完成配置文件的配置之後,還要進行使用,此時在初始化Swagger2的配置類中進行注入改屬性值。

@Configuration
@EnableSwagger2
public class SwaggerConfig {

	@Value("${swagger.show}")
	private boolean swaggerShow;
    
}

這樣配置類就擁有了該屬性的值,然後在構造Docket時調用Docket的enable方法,將該值傳遞進去。

@Configuration
@EnableSwagger2
@Profile({"test"})
public class SwaggerConfig {

	@Value("${swagger.show}")
	private boolean swaggerShow;

	@Bean
	public Docket createRestApi() {
		return new Docket(DocumentationType.SWAGGER_2)
		        // 此處設置是否開啓
				.enable(swaggerShow)
				.apiInfo(apiInfo());
				// 省略了其他配置
	}
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章