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


本文摘自classinstance.cn。

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,其他环境默认关闭。

相关阅读 >>

spring boot多module项目导入eclipse

spring boot跨域配置

spring boot项目时间字段少8小时问题

spring boot项目引入jar包时启动报错:java.lang.stackoverflowerror

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

更多相关阅读请进入《spring boot》频道 >>




打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...