本文摘自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,其他环境默认关闭。
相关阅读 >>
如何实现生产环境关闭swagger,只有开发环境中开启swagger
spring boot项目引入jar包时启动报错:java.lang.stackoverflowerror
更多相关阅读请进入《spring boot》频道 >>
深入理解Java虚拟机 JVM高级特性与实践 周志明 第3版
这是一部从工作原理和工程实践两个维度深入剖析JVM的著作,是计算机领域公认的经典。