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