「这是我参与11月更文挑战的第21天,活动详情查看:2021最后一次更文挑战」
相关文章
Java随笔记:Java随笔记
前言
- 一直都在讲如何过滤,不知道大家有没有考虑过一个问题。
- 我们在工作中,也就是实际开发中,一般都是分环境的,总不能线上也搞个Swagger展示出来吧?
- 一般都是开发环境才需要配制Swagger,方便前后端联调。
- 那么,如何动态配制Swagger的开关呢?
动态Swagger开关
前面讲过的
Docket
类还有印象吧?他里面有这么一个方法1
2
3
4
5
6
7
8
9
10
11
12kotlin复制代码
/**
* Hook to externally control auto initialization of this swagger plugin instance.
* Typically used if defer initialization.
*
* @param externallyConfiguredFlag - true to turn it on, false to turn it off
* @return this Docket
*/
public Docket enable(boolean externallyConfiguredFlag) {
this.enabled = externallyConfiguredFlag;
return this;
}看下默认值
也就是说,我们前面不设置
enable
的话,默认是开启的。整合
yml
配制文件来动态开关关于如何配制动态
yml
配置文件可以点这里 如何将application配置文件玩出花样来?| SpringBoot系列(二)在此关于这个不在赘述
首先建立两个
yml
文件建立实体类
SwaggerModel
通过@ConfigurationProperties(prefix = "")
接受配置文件的信息
+ 1
2
3
4
5
6
less复制代码@Data
@Component
@ConfigurationProperties(prefix = "swagger")
public class SwaggerModel {
private boolean enable;
}
SwaggerConfig
改造
+ 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
typescript复制代码@Configuration //配置类
@EnableSwagger2// 开启Swagger2的自动配置
public class SwaggerConfig {
@Autowired
private SwaggerModel swaggerModel;//读取配置文件的内容!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
@Bean
public Docket docket(){
return new Docket(DocumentationType.SWAGGER_2)
.apiInfo(apiInfo())
.enable(swaggerModel.isEnable())//这里是改造重点!!!!!!!!!!!!!!!!!!!!!!!!!!!!
.select()
.paths(PathSelectors.any()))
.build();
}
//配置文档信息
private ApiInfo apiInfo() {
Contact contact = new Contact("大鱼", "https://juejin.cn/user/2084329779387864/posts", "773530472@qq.com");
return new ApiInfo(
"大鱼随笔记", // 标题
"Swagger的学习", // 描述
"v1.0", // 版本
"https://juejin.cn/user/2084329779387864/posts", // 组织链接
contact, // 联系人信息
"Apach 2.0 许可", // 许可
"https://juejin.cn/user/2084329779387864/posts", // 许可连接
new ArrayList<>()// 扩展
);
}
}
- 到此我们先指定
dev
环境启动看看,理论上开启Swagger
的 - 结果如下:
- 完美!
- 指定
prod
启动 - 结果如下:
- 完美符合我们的要求!
总结
- 其实这种玩法主要有三个知识点:
+ ①、动态配置文件
+ ②、`@ConfigurationProperties`注解读取配置文件的信息
+ ③、`Swagger`的开关
- 以上都是个人所言,如有不对,欢迎指出。
- 如果对您有帮助,希望给我点个赞点个关注呗!咱们明天继续
Swagger
的讲解! - 预告:
Swagger
实体的配置详解
路漫漫其修远兮,吾必将上下求索~
如果你认为i博主写的不错!写作不易,请点赞、关注、评论给博主一个鼓励吧~hahah
本文转载自: 掘金