SpringBoot生产环境快速禁用Swagger2

时间:2024-05-20 08:13:06

方法一

使用注解@Profile({"dev","test"}) 表示在开发或测试环境开启,而在生产关闭。
@Profile使用的值是根据spring.profiles.active指定的环境参数,可以参考上一篇博客SpringBoot入门篇之多环境配置文件

简单介绍下@Profile注解

@Profile 注解的作用在不同的场景下,给出不同的类实例。比如在生产环境中给出的 DataSource 实例和测试环境给出的 DataSource 实例是不同的。

@Profile 的使用时,一般是在@Configuration 下使用,标注在类或者方法上,标注的时候填入一个字符串(例如”dev”),作为一个场景,或者一个区分。

实际上,很少通过上面的方式** Spring 容器中的 Profile,通常都是让 Spring 容器自动去读取 Profile 的值,然后自动设置。这些实现通常是具体框架实现或者虚拟机参数/环境变量等相关。

方法二

使用注解@ConditionalOnProperty(name = "swagger.enable", havingValue = "true") 然后在对应的application.properties/application.yml配置文件中添加 swagger.enable = true即可开启,生产环境不填则默认关闭Swagger。


以上两种方法都可以成功根据当前环境禁用swagger2,效果如下:

SpringBoot生产环境快速禁用Swagger2

参考博客:
https://cloud.tencent.com/developer/article/1362768
https://www.jb51.net/article/153492.htm