SpringBoot 在生產(chǎn)快速禁用Swagger2

SpringBoot 在生產(chǎn)快速禁用Swagger2

yizhiwazi

0.6 2018.07.21 19:31* 字?jǐn)?shù) 219 閱讀 4858評論 11喜歡 52

你還在生產(chǎn)節(jié)點(diǎn)開放Swagger嗎,趕緊停止這種暴露接口的行為吧。

學(xué)習(xí)目標(biāo)

快速學(xué)會使用注解關(guān)閉Swagger2,避免接口重復(fù)暴露。

快速查閱

源碼下載:SpringBoot Swagger2 Auto Close

專題閱讀:《SpringBoot 布道系列》

使用教程

禁用方法1:使用注解@Profile({"dev","test"}) 表示在開發(fā)或測試環(huán)境開啟,而在生產(chǎn)關(guān)閉。(推薦使用)

禁用方法2:使用注解@ConditionalOnProperty(name = "swagger.enable", havingValue = "true") 然后在測試配置或者開發(fā)配置中 添加 swagger.enable = true 即可開啟,生產(chǎn)環(huán)境不填則默認(rèn)關(guān)閉Swagger.

例如:

/**
 * Swagger2 接口配置
 */

@Configuration
@EnableSwagger2
//@Profile({"dev","test"})
@ConditionalOnProperty(name = "swagger.enable", havingValue = "true")
public class Swagger2Config {
    /**
     * 添加摘要信息(Docket)
     */
    @Bean
    public Docket controllerApi() {
        return new Docket(DocumentationType.SWAGGER_2)
                .apiInfo(new ApiInfoBuilder()
                        .title("標(biāo)題:某公司_用戶信息管理系統(tǒng)_接口文檔")
                        .description("描述:用于管理集團(tuán)旗下公司的人員信息,具體包括XXX,XXX模塊...")
                        .contact(new Contact("Socks", null, null))
                        .version("版本號:1.0")
                        .build())
                .select()
                .apis(RequestHandlerSelectors.basePackage("com.hehe.controller"))
                .paths(PathSelectors.any())
                .build();
    }
}

image

訪問效果:

開發(fā)環(huán)境:http://localhost:8081/swagger-ui.html 正常訪問Swagger。

image

生產(chǎn)環(huán)境:http://localhost:8082/swagger-ui.html 已經(jīng)禁用Swagger。

image
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容