MP实战系列(十)之SpringMVC集成SpringFox+Swagger2

简介: 该示例基于之前的实战系列,如果公司框架是使用JDK7以上及其Spring+MyBatis+SpringMVC/Spring+MyBatis Plus+SpringMVC可直接参考该实例。不过建议最好采用的是JDK8+Spring+MyBatis Plus+SpringMVC,因为本示例就是基于这个。

 该示例基于之前的实战系列,如果公司框架是使用JDK7以上及其Spring+MyBatis+SpringMVC/Spring+MyBatis Plus+SpringMVC可直接参考该实例。

不过建议最好采用的是JDK8+Spring+MyBatis Plus+SpringMVC,因为本示例就是基于这个。

之所以集成SpringFox+Swagger2,因为该特性由于之前的单SpringMVC集成Swagger。

这一点,后面我会专门讲到的。

一、导入依赖

    <!-- 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>

 

二、编写SwaggerConfig.java

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();


    }
}

 

三、在spring-mvc.xml文件补充该bean

顾名思义该Bean的作用就是集成Swagger集成Spring

 <bean class="com.mangofactory.swagger.configuration.SpringSwaggerConfig" />  
    

如果不添加该Bean就会出现如下情况:

另外还有就是配置好bean运行项目后出现如图情况:

描述的情况是:正在获取资源,不过需要延迟一段时间

获取资源列表,加载缓慢,打不开,通常是浏览器的缘故,我用IE和火狐都可打开看到正常的API接口文档,但是用Google浏览器就始终打不开,这点目前不知道是什么原因,有待研究。

 

 另外关于swagger版本问题,如果是SpringMVC整合Swagger的话,建议使用2以上,3以下的版本,不然会出现如下图所示情况:

Springmvc整合swagger的3以上版本出现上述问题

原因:版本过低不能采用

解决方案:使用低版本swagger即可恢复正常

建议使用2.2.10的swagger版本

如果是SpringBoot的话,直接使用swagger3以上的版本。SpringBoot使用swagger高版本不存在这种问题,之前我已经试验过了。

目录
相关文章
|
2月前
|
Java Maven
【SpringBoot专题_02】springboot集成Swagger详细教程
【SpringBoot专题_02】springboot集成Swagger详细教程
|
2月前
|
Java 关系型数据库 MySQL
Shiro实战+springboot集成
Shiro实战+springboot集成
18 0
|
4月前
|
Java
SpringMVC 集成Log4j
SpringMVC 集成Log4j
30 0
|
4月前
|
Java API
SpringBoot集成Swagger2组件
SpringBoot集成Swagger2组件
28 1
实战分享之springboot+easypoi快速业务集成2
实战分享之springboot+easypoi快速业务集成2
实战分享之springboot+easypoi快速业务集成1
实战分享之springboot+easypoi快速业务集成1
|
4月前
|
前端开发 搜索推荐 Java
springboot集成swagger knife4j 最详细的步骤 手把手教你继承swagger
springboot集成swagger knife4j 最详细的步骤 手把手教你继承swagger
251 0
springboot集成swagger knife4j 最详细的步骤 手把手教你继承swagger
|
4月前
|
Web App开发 Android开发 ice
【Android App】给App集成WebRTC实现视频发送和接受实战(附源码和演示 超详细)
【Android App】给App集成WebRTC实现视频发送和接受实战(附源码和演示 超详细)
96 1
|
4月前
|
Java 定位技术 Android开发
【Android App】集成腾讯地图显示位置和地图面板讲解及实战(附源码和演示 超详细必看)
【Android App】集成腾讯地图显示位置和地图面板讲解及实战(附源码和演示 超详细必看)
84 1