时间:2019-5-23 20:12:04
地点:家中
通过前面几篇文章对springfox的介绍,以及我们的学习准备工作,这篇我们将正式来探索springfox是如何初始化的
我们在学算法的时候,其中一个算法是快速排序,而快速排序讲究的是如果给定一个集合的元素<2,那其实就不用排序了,那就是最快的,取集合中任意元素M,然后,比M小的,排左边,比M大的排右边,这样只需要排2次(递归调用最小次数),这其中用到了分而治之的思想,这种思想我们在工作中也很适用,就拿学习源码来说吧,将一个看似很难的源码,分解成若干小块,每一个小块都逐一研究攻破,因为你不可能所有的都不懂,随着研究的过程中,自信心的增长,整个部分的源码最后你就会把他吃透.
项目结构
在这之前,我们先来看一下springfox的项目分层结构:
这是springfox 2.9.2版本的源码结构,主要包含了6个模块:
springfox-core:springfox的核心包,里面基本封装的是一些实体类,core模块大量的运用了设计模式中的Builder构造器
springfox-schema:一系列方法实现类
springfox-spi:一系列的Plugin接口声明
springfox-spring-web:针对spring-web模块的核心操作,springfox的初始化代码也在此模块中
springfox-swagger2:对外使用类,注解,包括我们熟知的@EnableSwagger2注解
springfox-swagger-common:springfox的功能模块代码,Plugin接口的实现
启动类
启动类就是springfox的开始,从