在前面的文章中我們介紹了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());
// 省略了其他配置
}
}