千家信息网

SpringBoot禁用Swagger的方式有哪些

发表于:2025-02-11 作者:千家信息网编辑
千家信息网最后更新 2025年02月11日,这篇文章主要介绍"SpringBoot禁用Swagger的方式有哪些",在日常操作中,相信很多人在SpringBoot禁用Swagger的方式有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的
千家信息网最后更新 2025年02月11日SpringBoot禁用Swagger的方式有哪些

这篇文章主要介绍"SpringBoot禁用Swagger的方式有哪些",在日常操作中,相信很多人在SpringBoot禁用Swagger的方式有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答"SpringBoot禁用Swagger的方式有哪些"的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

摘要

在生产环境下,我们需要关闭swagger配置,避免暴露接口的这种危险行为。

方法

禁用方法1:

使用注解 @Value() 推荐使用

package com.dc.config;import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;import org.springframework.context.annotation.Bean;import org.springframework.context.annotation.Configuration;import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;import org.springframework.web.servlet.config.annotation.ViewControllerRegistry;import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;import springfox.documentation.builders.ApiInfoBuilder;import springfox.documentation.builders.PathSelectors;import springfox.documentation.builders.RequestHandlerSelectors;import springfox.documentation.service.ApiInfo;import springfox.documentation.service.Contact;import springfox.documentation.spi.DocumentationType;import springfox.documentation.spring.web.plugins.Docket;import springfox.documentation.swagger2.annotations.EnableSwagger2;/** * @author sunny chen * @version V1.0 * @Package com.dc.config * @date 2018/1/16 17:33 * @Description: 主要用途:开启在线接口文档和添加相关配置 */@Configuration@EnableSwagger2public class Swagger2Config extends WebMvcConfigurerAdapter {    @Value("${swagger.enable}")    private Boolean enable;       @Bean    public Docket createRestApi() {        return new Docket(DocumentationType.SWAGGER_2)            .enable(enable)                .apiInfo(apiInfo())                .select()                .apis(RequestHandlerSelectors.basePackage("com.dc.controller"))                .paths(PathSelectors.any())                //.paths(PathSelectors.none())                .build();    }    private ApiInfo apiInfo()  {        return new ApiInfoBuilder()                .title("auth系统数据接口文档")                .description("此系统为新架构Api说明文档")                .termsOfServiceUrl("")                .contact(new Contact("陈永佳 chen867647213@163.com", "", "https://blog.csdn.net/Mrs_chens"))                .version("1.0")                .build();    }    /**     * swagger ui资源映射     * @param registry     */    @Override    public void addResourceHandlers(ResourceHandlerRegistry registry) {        registry.addResourceHandler("swagger-ui.html")                .addResourceLocations("classpath:/META-INF/resources/");        registry.addResourceHandler("/webjars/**")                .addResourceLocations("classpath:/META-INF/resources/webjars/");    }    /**     * swagger-ui.html路径映射,浏览器中使用/api-docs访问     * @param registry     */    @Override    public void addViewControllers(ViewControllerRegistry registry) {        registry.addRedirectViewController("/api-docs","/swagger-ui.html");    }}

禁用方法2:

使用注解 @Profile({"dev","test"}) 表示在开发或测试环境开启,而在生产关闭。(推荐使用)

package com.dc.config;import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;import org.springframework.context.annotation.Bean;import org.springframework.context.annotation.Configuration;import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;import org.springframework.web.servlet.config.annotation.ViewControllerRegistry;import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;import springfox.documentation.builders.ApiInfoBuilder;import springfox.documentation.builders.PathSelectors;import springfox.documentation.builders.RequestHandlerSelectors;import springfox.documentation.service.ApiInfo;import springfox.documentation.service.Contact;import springfox.documentation.spi.DocumentationType;import springfox.documentation.spring.web.plugins.Docket;import springfox.documentation.swagger2.annotations.EnableSwagger2;/** * @author sunny chen * @version V1.0 * @Package com.dc.config * @date 2018/1/16 17:33 * @Description: 主要用途:开启在线接口文档和添加相关配置 */@Configuration@EnableSwagger2@Profile({"dev","test"})public class Swagger2Config extends WebMvcConfigurerAdapter {    @Bean    public Docket createRestApi() {        return new Docket(DocumentationType.SWAGGER_2)                .apiInfo(apiInfo())                .select()                .apis(RequestHandlerSelectors.basePackage("com.dc.controller"))                .paths(PathSelectors.any())                //.paths(PathSelectors.none())                .build();    }    private ApiInfo apiInfo()  {        return new ApiInfoBuilder()                .title("auth系统数据接口文档")                .description("此系统为新架构Api说明文档")                .termsOfServiceUrl("")                .contact(new Contact("陈永佳 chen867647213@163.com", "", "https://blog.csdn.net/Mrs_chens"))                .version("1.0")                .build();    }    /**     * swagger ui资源映射     * @param registry     */    @Override    public void addResourceHandlers(ResourceHandlerRegistry registry) {        registry.addResourceHandler("swagger-ui.html")                .addResourceLocations("classpath:/META-INF/resources/");        registry.addResourceHandler("/webjars/**")                .addResourceLocations("classpath:/META-INF/resources/webjars/");    }    /**     * swagger-ui.html路径映射,浏览器中使用/api-docs访问     * @param registry     */    @Override    public void addViewControllers(ViewControllerRegistry registry) {        registry.addRedirectViewController("/api-docs","/swagger-ui.html");    }}

禁用方法3:

使用注解 @ConditionalOnProperty(name = "swagger.enable", havingValue = "true") 然后在测试配置或者开发配置中 添加 swagger.enable = true 即可开启,生产环境不填则默认关闭 Swagger.

package com.dc.config;import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;import org.springframework.context.annotation.Bean;import org.springframework.context.annotation.Configuration;import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;import org.springframework.web.servlet.config.annotation.ViewControllerRegistry;import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;import springfox.documentation.builders.ApiInfoBuilder;import springfox.documentation.builders.PathSelectors;import springfox.documentation.builders.RequestHandlerSelectors;import springfox.documentation.service.ApiInfo;import springfox.documentation.service.Contact;import springfox.documentation.spi.DocumentationType;import springfox.documentation.spring.web.plugins.Docket;import springfox.documentation.swagger2.annotations.EnableSwagger2;/** * @author sunny chen * @version V1.0 * @Package com.dc.config * @date 2018/1/16 17:33 * @Description: 主要用途:开启在线接口文档和添加相关配置 */@Configuration@EnableSwagger2@ConditionalOnProperty(name ="enabled" ,prefix = "swagger",havingValue = "true",matchIfMissing = true)public class Swagger2Config extends WebMvcConfigurerAdapter {    @Bean    public Docket createRestApi() {        return new Docket(DocumentationType.SWAGGER_2)                .apiInfo(apiInfo())                .select()                .apis(RequestHandlerSelectors.basePackage("com.dc.controller"))                .paths(PathSelectors.any())                //.paths(PathSelectors.none())                .build();    }    private ApiInfo apiInfo()  {        return new ApiInfoBuilder()                .title("auth系统数据接口文档")                .description("此系统为新架构Api说明文档")                .termsOfServiceUrl("")                .contact(new Contact("陈永佳 chen867647213@163.com", "", "https://blog.csdn.net/Mrs_chens"))                .version("1.0")                .build();    }    /**     * swagger ui资源映射     * @param registry     */    @Override    public void addResourceHandlers(ResourceHandlerRegistry registry) {        registry.addResourceHandler("swagger-ui.html")                .addResourceLocations("classpath:/META-INF/resources/");        registry.addResourceHandler("/webjars/**")                .addResourceLocations("classpath:/META-INF/resources/webjars/");    }    /**     * swagger-ui.html路径映射,浏览器中使用/api-docs访问     * @param registry     */    @Override    public void addViewControllers(ViewControllerRegistry registry) {        registry.addRedirectViewController("/api-docs","/swagger-ui.html");    }}

到此,关于"SpringBoot禁用Swagger的方式有哪些"的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注网站,小编会继续努力为大家带来更多实用的文章!

0