MP實戰系列(十)之SpringMVC集成SpringFox+Swagger2

 該示例基於以前的實戰系列,若是公司框架是使用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高版本不存在這種問題,以前我已經試驗過了。

相關文章
相關標籤/搜索