2022-08-20
swagger扫描异步执行
springboot 评论:0 浏览:121

转载请注明出处:https://oldnoop.tech/c/217.html

现在swagger用的人比较多了, 当项目中的接口比较多的时候,项目启动的时候,swagger扫描会占用很长的时间,比如10秒以上, 

这样就可以思考一下,很自然的想到bean加载异步处理的话题, 那让swagger扫描异步执行是否可行呢?

  1. 首先swagger的扫描的核心类 DocumentationPluginsBootstrapper 是通过注解定义扫描包的方式 自动加载的, 需要再扫描包的时候排除这个类
  2. 手动注册这个bean, 然后让扫描方式异步执行即可

以swagger3为例, 这里说个题外话,网上有很多菜鸡帖子提到需要使用驱动注解@EnableOpenApi, 其实在引入起步依赖springfox-boot-starter时,

这里面已经有自动配置类OpenApiAutoConfiguration, 自动配置swagger3了, 是不需要使用驱动注解@EnableOpenApi

swagger3里面, 主要是修改几个核心配置类, 最终的关键在于 修改 负责扫描的核心类的扫描方法异步执行

 

首先来定义一个配置类,代替框架自带的配置类,

 

然后自定义需要的2个核心组件

 

然后是 第3个核心组件, 在这个配置上,排除执行扫描的核心类

最后, 手动注册 执行扫描的 核心类的 bean, 将扫描方式改为异步执行

再来,搞个花里胡哨的驱动注解 

最后, 使用的时候,因为swagger3的自动配置类的存在, 需要排除自动配置类, 再使用上面的 驱动注解

 

swagger2 的扫描改为异步执行,处理思路 和 swagger3 类似, 只不过 配置类代码有所不同.



  • 转载请注明出处:https://oldnoop.tech/c/217.html

Copyright © 2018 oldnoop.tech. All Rights Reserved

鄂ICP备2023022735号-1