「这是我参与11月更文挑战的第21天,活动详情查看:2021最后一次更文挑战」
相关文章
Java随笔记:Java随笔记
前言
- 一直都在讲如何过滤,不知道大家有没有考虑过一个问题。
- 我们在工作中,也就是实际开发中,一般都是分环境的,总不能线上也搞个Swagger展示出来吧?
- 一般都是开发环境才需要配制Swagger,方便前后端联调。
- 那么,如何动态配制Swagger的开关呢?
动态Swagger开关
-
前面讲过的
Docket
类还有印象吧?他里面有这么一个方法 -
/** * 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 = "")
接受配置文件的信息-
@Data @Component @ConfigurationProperties(prefix = "swagger") public class SwaggerModel { private boolean enable; } 复制代码
-
-
SwaggerConfig
改造-
@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", "[email protected]"); 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