該示例基於以前的實戰系列,若是公司框架是使用JDK7以上及其Spring+MyBatis+SpringMVC/Spring+MyBatis Plus+SpringMVC可直接參考該實例。java
不過建議最好採用的是JDK8+Spring+MyBatis Plus+SpringMVC,由於本示例就是基於這個。web
之因此集成SpringFox+Swagger2,由於該特性因爲以前的單SpringMVC集成Swagger。spring
這一點,後面我會專門講到的。api
1、導入依賴瀏覽器
<!-- swagger api文檔管理 --> <dependency> <groupId>com.mangofactory</groupId> <artifactId>swagger-springmvc</artifactId> <version>1.0.2</version> </dependency> <dependency> <groupId>com.mangofactory</groupId> <artifactId>swagger-models</artifactId> <version>1.0.2</version> </dependency> <dependency> <groupId>com.wordnik</groupId> <artifactId>swagger-annotations</artifactId> <version>1.3.11</version> </dependency> <dependency> <groupId>com.google.guava</groupId> <artifactId>guava</artifactId> <version>15.0</version> </dependency> <!-- 集成springfox --> <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger2</artifactId> <version>2.7.0</version> </dependency> <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger-ui</artifactId> <version>2.7.0</version> </dependency>
2、編寫SwaggerConfig.javaspring-mvc
package com.swagger; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.ComponentScan; import org.springframework.context.annotation.Configuration; import org.springframework.web.servlet.config.annotation.EnableWebMvc; import springfox.documentation.builders.ApiInfoBuilder; import springfox.documentation.builders.RequestHandlerSelectors; import springfox.documentation.service.ApiInfo; import springfox.documentation.spi.DocumentationType; import springfox.documentation.spring.web.plugins.Docket; import springfox.documentation.swagger2.annotations.EnableSwagger2; /** * * @author yc */ @Configuration @EnableSwagger2 public class SwaggerConfig{ @Bean public Docket api() { return new Docket(DocumentationType.SWAGGER_2) .select() .apis(RequestHandlerSelectors.any()) .build() .apiInfo(apiInfo()); } private ApiInfo apiInfo() { return new ApiInfoBuilder() .title("接口API管理文檔") .description("HTTP對外開放接口") .version("1.0.0") .termsOfServiceUrl("http://www.test.com") .license("LICENSE") .licenseUrl("http://www.test.com") .build(); } }
3、在spring-mvc.xml文件補充該beanmvc
顧名思義該Bean的做用就是集成Swagger集成Spring框架
<bean class="com.mangofactory.swagger.configuration.SpringSwaggerConfig" />
若是不添加該Bean就會出現以下狀況:ui
另外還有就是配置好bean運行項目後出現如圖狀況:google
描述的狀況是:正在獲取資源,不過須要延遲一段時間
獲取資源列表,加載緩慢,打不開,一般是瀏覽器的緣故,我用IE和火狐均可打開看到正常的API接口文檔,可是用Google瀏覽器就始終打不開,這點目前不知道是什麼緣由,有待研究。
另外關於swagger版本問題,若是是SpringMVC整合Swagger的話,建議使用2以上,3如下的版本,否則會出現以下圖所示狀況:
Springmvc整合swagger的3以上版本出現上述問題
緣由:版本太低不能採用
解決方案:使用低版本swagger便可恢復正常
建議使用2.2.10的swagger版本
若是是SpringBoot的話,直接使用swagger3以上的版本。SpringBoot使用swagger高版本不存在這種問題,以前我已經試驗過了。