转自:
http://www.java265.com/JavaCourse/202204/2931.html
SpringBoot:
Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。通过这种方式,Spring Boot致力于在蓬勃发展的快速应用开发领域(rapid application development)成为领导者
在生产环境中,我们需关闭swagger配置,避免接口对外暴露而产生各种危险,具体的操作方式如下所示:
禁用方式1: 使用@Value
package com.java265; 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; @Configuration @EnableSwagger2 public 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(\"admin@java265.com\", \"\", \"*********\")) .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\"); } }
方式二:使用Profile注解
使用注解@Profile({“dev”,“test”})
在开发或测试环境开启
package com.java265.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; @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(\"*****\", \"\", \"**\")) .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\"); } }
来源:https://www.cnblogs.com/java265/p/16483285.html
本站部分图文来源于网络,如有侵权请联系删除。