如何实现生产环境关闭swagger,只有开发环境中开启swagger

原创 2019-09-19 17:29 阅读(5919)次

spring boot工程在生产环境中出于安全考虑,不想要别人能访问你的swagger接口管理页面。这时我们就可以用配置将生产环境中的swagger关闭,但同时开发环境要开启,实现方式可以用@Value来配置。

具体代码与配置如下:

java代码:

/**
 * swagger文档
 *
 */
@Configuration
@EnableSwagger2
public class SwaggerConfig {
	@Value("${swagger.enable}")
	private boolean enable = false;
	
	@Bean
	public Docket docket() {
		ParameterBuilder builder = new ParameterBuilder();
		builder.parameterType("header").name(TokenFilter.TOKEN_KEY)//接口默认token参数
				.description("header参数")
				.required(false)
				.modelRef(new ModelRef("string")); // 在swagger里显示header

		return new Docket(DocumentationType.SWAGGER_2).groupName("微服务接口调用文档")
				.enable(enable)
				.apiInfo(new ApiInfoBuilder().title("微服务接口调用文档")
						.contact(new Contact("xx", "", "xxxx@qq.com")).version("1.1").build())
				.globalOperationParameters(Lists.newArrayList(builder.build()))
				.select().paths(PathSelectors.any()).build();
	}
}
默认配置swagger为关闭

application.yml配置:

swagger:
  enable: false

只在dev环境中开启,其他环境不配置

swagger:
  enable: true   
这样配置之后只有开发环境中开启了swagger,其他环境默认关闭。


上一篇:js格式化日期Date