Spring Boot(九)如何在生产环境禁用swagger
上篇主要是介绍了再SpringBoot框架下swagger的应用,感觉其中最大的一个障碍则是版本之间的冲突问题,希望使用的小伙伴们可以注意。本篇则主要是针对生产环境如何禁用swagger进行一下总结,来保证生产环境的安全。
方法一:Spring Profiles功能
Spring Profiles提供了一种隔离应用程序配置部分并使其仅在特定环境中可用的方法。任何@Component或@Configuration 可以标记@Profile以限制何时加载。当然您可以使用spring.profiles.active Environment属性指定哪些配置文件处于活动状态。直接在application.properties配置即可。
swagger注解
@Profile("swagger")
@Configuration
@EnableSwagger2
public class SwaggerConfig {
application.properties测试环境:
spring.profiles.active=dev,swagger
application.properties生产环境:
spring.profiles.active=prod
利用profiles是最合理的一种方式,因为application.properties是专门为spring服务的,当然在application.properties中可以添加我们任意的路径,那么则可以采用下面一种方式。
方法二:ConditionalOnProperty注解
应用ConditionalOnProperty注解也是需要依赖application.properties配置文件的,如下;
swagger注解
@Configuration
@ConditionalOnProperty(prefix = "swagger",value = {"enable"},havingValue = "true")
@EnableSwagger2
public class SwaggerConfig {
application.properties测试环境:
swagger.enable=true
application.properties生产环境:
swagger.enable=false
这里的属性key是 swagger.enable ,havingValue 是期望值,只有在值等于期望值的时候,才会生效。也就是说,swagger.enable只能为true的时候才会生效,其他值或不设值,都不会生效的。
三、笨方法逻辑判断
以上两种通过注解的方式实现其效果,是最方便快捷的,当然若不嫌麻烦,也可以通过在逻辑中判定的方式来做处理,这里则不变多说。
下篇则介绍在spring中如何集成swagger.