SpringBoot2.x系列教程(五十六)SpringBoot集成Swagger2中不同环境开关配置

在前面的文章中我们介绍了Spring Boot如何集成Swagger2及访问权限的控制 。又有一个问题出现了,Swagger2虽然好用,但也不能发布到生产环境吧。

那么,针对该问题,本篇文章为大家提供三种解决方案。选择最适合你的即可。

方案一:根据条件判断的方式

此中方式最常见,在配置文件中配置一个标识,比如:

swagger:
  show : false

在不需要的环境时,直接设置为false即可。比如dev和test环境的配置文件中设置为true,prod环境中的配置文件设置为false。这些设置与数据库等环境的配置类似。

swagger:
  show : true

完成配置文件的配置之后,还要进行使用,此时在初始化Swagger2的配置类中进行注入改属性值。

@Configuration
@EnableSwagger2
public class SwaggerConfig {

	@Value("${swagger.show}")
	private boolean swaggerShow;
    
}

这样配置类就拥有了该属性的值,然后在构造Docket时调用Docket的enable方法,将该值传递进去。

@Configuration
@EnableSwagger2
@Profile({"test"})
public class SwaggerConfig {

	@Value("${swagger.show}")
	private boolean swaggerShow;

	@Bean
	public Docket createRestApi() {
		return new Docket(DocumentationType.SWAGGER_2)
		        // 此处设置是否开启
				.enable(swaggerShow)
				.apiInfo(apiInfo());
				// 省略了其他配置
	}
}

猜你喜欢

转载自blog.csdn.net/wo541075754/article/details/105228652
今日推荐