楔子
Swagger
是 Java Web 开发中常用的接口文档生成类库,在开发和前后端联调时使用它来模拟接口调用能提高开发效率。但是,在生产环境可能并不需要它,一个原因是启用它会延长程序启动时间(动态解析代码中的注解来生成文档),另一个是安全问题(过不了漏洞扫描,需要鉴权访问或禁用掉)
本文的目标就是禁用掉 Swagger
,由于配置比较简单,笔者在本地已经实践通过了,直接记录在这里了。
笔者测试版本基于 SpringBoot 2.4.6 +
io.springfox:springfox-swagger2:3.0.0
禁用方法
yaml 配置方式:
springfox:
documentation:
auto-startup: false
properties 配置方式:
springfox.documentation.auto-startup=false
最佳实践
说是最佳实践,其实是相对而言的。即通过SpringBoot的 配置覆盖/多环境配置文件
来实现。
配置文件覆盖
在默认的配置文件 application.{yaml|properties} 中添加禁用配置,然后在具体环境配置文件中覆盖它。
比如,开发测试环境有个 application-dev.properties,在这个配置文件里可以设置开启
springfox.documentation.auto-startup=true
生产环境什么也不配置,走默认 application.properties(含禁用配置) 即禁用Swagger。
多环境配置文件
比如开发测试配置文件是 application-dev.properties
,生产配置文件是 application-prod.properties
,就可以只在 application-prod.properties
中添加禁用配置。
以上两种方式都可以,看大家想使用哪种了。
本文同步于本人博客园(hellxz.cnblogs.com) 与 CSDN(https://blog.csdn.net/u012586326),禁止转载。