SpringBoot中如何使用配置禁用swagger呢?

打印 上一主题 下一主题

主题 909|帖子 909|积分 2727

转自:
http://www.java265.com/JavaCourse/202204/2931.html
SpringBoot:
        Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。通过这种方式,Spring Boot致力于在蓬勃发展的快速应用开发领域(rapid application development)成为领导者
 
在生产环境中,我们需关闭swagger配置,避免接口对外暴露而产生各种危险,具体的操作方式如下所示:
禁用方式1: 使用@Value
  1. package com.java265;
  2. import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
  3. import org.springframework.context.annotation.Bean;
  4. import org.springframework.context.annotation.Configuration;
  5. import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
  6. import org.springframework.web.servlet.config.annotation.ViewControllerRegistry;
  7. import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;
  8. import springfox.documentation.builders.ApiInfoBuilder;
  9. import springfox.documentation.builders.PathSelectors;
  10. import springfox.documentation.builders.RequestHandlerSelectors;
  11. import springfox.documentation.service.ApiInfo;
  12. import springfox.documentation.service.Contact;
  13. import springfox.documentation.spi.DocumentationType;
  14. import springfox.documentation.spring.web.plugins.Docket;
  15. import springfox.documentation.swagger2.annotations.EnableSwagger2;
  16. @Configuration
  17. @EnableSwagger2
  18. public class Swagger2Config extends WebMvcConfigurerAdapter {
  19.     @Value("${swagger.enable}")
  20.     private Boolean enable;
  21.     @Bean
  22.     public Docket createRestApi() {
  23.         return new Docket(DocumentationType.SWAGGER_2)
  24.                 .enable(enable)
  25.                 .apiInfo(apiInfo())
  26.                 .select()
  27.                 .apis(RequestHandlerSelectors.basePackage("com.dc.controller"))
  28.                 .paths(PathSelectors.any())
  29.                 //.paths(PathSelectors.none())
  30.                 .build();
  31.     }
  32.     private ApiInfo apiInfo()  {
  33.         return new ApiInfoBuilder()
  34.                 .title("auth系统数据接口文档")
  35.                 .description("此系统为新架构Api说明文档")
  36.                 .termsOfServiceUrl("")
  37.                 .contact(new Contact("admin@java265.com", "", "*********"))
  38.                 .version("1.0")
  39.                 .build();
  40.     }
  41.     /**
  42.      * swagger ui资源映射
  43.      * @param registry
  44.      */
  45.     @Override
  46.     public void addResourceHandlers(ResourceHandlerRegistry registry) {
  47.         registry.addResourceHandler("swagger-ui.html")
  48.                 .addResourceLocations("classpath:/META-INF/resources/");
  49.         registry.addResourceHandler("/webjars/**")
  50.                 .addResourceLocations("classpath:/META-INF/resources/webjars/");
  51.     }
  52.     /**
  53.      * swagger-ui.html路径映射,浏览器中使用/api-docs访问
  54.      * @param registry
  55.      */
  56.     @Override
  57.     public void addViewControllers(ViewControllerRegistry registry) {
  58.         registry.addRedirectViewController("/api-docs","/swagger-ui.html");
  59.     }
  60. }
复制代码
方式二:使用Profile注解

使用注解@Profile({“dev”,“test”})
在开发或测试环境开启
  1. package com.java265.config;
  2. import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
  3. import org.springframework.context.annotation.Bean;
  4. import org.springframework.context.annotation.Configuration;
  5. import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
  6. import org.springframework.web.servlet.config.annotation.ViewControllerRegistry;
  7. import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;
  8. import springfox.documentation.builders.ApiInfoBuilder;
  9. import springfox.documentation.builders.PathSelectors;
  10. import springfox.documentation.builders.RequestHandlerSelectors;
  11. import springfox.documentation.service.ApiInfo;
  12. import springfox.documentation.service.Contact;
  13. import springfox.documentation.spi.DocumentationType;
  14. import springfox.documentation.spring.web.plugins.Docket;
  15. import springfox.documentation.swagger2.annotations.EnableSwagger2;
  16. @Configuration
  17. @EnableSwagger2
  18. @Profile({“dev”,“test”})
  19. public class Swagger2Config extends WebMvcConfigurerAdapter {
  20.     @Bean
  21.     public Docket createRestApi() {
  22.         return new Docket(DocumentationType.SWAGGER_2)
  23.                 .apiInfo(apiInfo())
  24.                 .select()
  25.                 .apis(RequestHandlerSelectors.basePackage("com.dc.controller"))
  26.                 .paths(PathSelectors.any())
  27.                 //.paths(PathSelectors.none())
  28.                 .build();
  29.     }
  30.     private ApiInfo apiInfo()  {
  31.         return new ApiInfoBuilder()
  32.                 .title("auth系统数据接口文档")
  33.                 .description("此系统为新架构Api说明文档")
  34.                 .termsOfServiceUrl("")
  35.                 .contact(new Contact("*****", "", "**"))
  36.                 .version("1.0")
  37.                 .build();
  38.     }
  39.     /**
  40.      * swagger ui资源映射
  41.      * @param registry
  42.      */
  43.     @Override
  44.     public void addResourceHandlers(ResourceHandlerRegistry registry) {
  45.         registry.addResourceHandler("swagger-ui.html")
  46.                 .addResourceLocations("classpath:/META-INF/resources/");
  47.         registry.addResourceHandler("/webjars/**")
  48.                 .addResourceLocations("classpath:/META-INF/resources/webjars/");
  49.     }
  50.     /**
  51.      * swagger-ui.html路径映射,浏览器中使用/api-docs访问
  52.      * @param registry
  53.      */
  54.     @Override
  55.     public void addViewControllers(ViewControllerRegistry registry) {
  56.         registry.addRedirectViewController("/api-docs","/swagger-ui.html");
  57.     }
  58. }
复制代码
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
回复

使用道具 举报

0 个回复

正序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

圆咕噜咕噜

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表