SpringMVC集成Swagger2,初尝试和遇到的相关问题

来源:互联网 发布:大数据公司 编辑:程序博客网 时间:2024/05/16 07:51

前言

之前项目的接口文档都是手动编写Word文档来做,制作成本较高,并且在进行版本迭代的时候进行标注和说明不是很方便,后来发现Swagger之后进行了简单的操作。
截止目前还未深度使用,本文仅记录初次使用Swagger的过程和遇到的问题,后续进行补充。
前言:
当前项目使用SpringMVC,集成Swagger2

配置

Step1:添加依赖包

    <!--springfox 相关依赖 start-->    <dependency>            <groupId>io.springfox</groupId>            <artifactId>springfox-swagger2</artifactId>            <version>2.6.1</version>        </dependency>        <dependency>            <groupId>io.springfox</groupId>            <artifactId>springfox-swagger-ui</artifactId>            <version>2.6.1</version>        </dependency>    <!--springfox 相关依赖 end-->        <!-- 映入JSON -->          <dependency>          <groupId>com.fasterxml.jackson.core</groupId>          <artifactId>jackson-core</artifactId>          <version>2.6.5</version>        </dependency>    <dependency>          <groupId>com.fasterxml.jackson.core</groupId>          <artifactId>jackson-databind</artifactId>          <version>2.6.5</version>          <!-- <scope>provided</scope> -->     </dependency>     <!-- 映入JSON -->

Step2:添加Spring配置文件中的相关配置:

    <!-- swagger start-->    <!-- 启动注解 -->        <mvc:annotation-driven />        <!-- 配置Swagger相关静态资源 -->    <mvc:resources location="classpath:/META-INF/resources/" mapping="swagger-ui.html"/>    <mvc:resources location="classpath:/META-INF/resources/webjars/" mapping="/webjars/**"/>    <!-- 引用Swagger 默认配置 -->    <bean class="springfox.documentation.swagger2.configuration.Swagger2DocumentationConfiguration" id="swagger2Config"/>     <!-- 添加Swagger2 扫描目录 -->    <context:component-scan base-package="com.train.action" ></context:component-scan>        <!-- swagger end -->

备注:本次使用的Swagger相关配置是Swagger的默认配置,也可以通过

<bean class="com.swagger.doc.MySwaggerConfig" />

已上的方式自定义swagger配置类并配置bean。

step3:确定Spring的url-pattern映射关系为 /:

  <!-- Spring MVC servlet -->    <servlet>    <servlet-name>spring</servlet-name>    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>    <init-param>      <param-name>contextConfigLocation</param-name>      <param-value>classpath:/config/spring-mvc.xml</param-value>    </init-param>    <load-on-startup>1</load-on-startup>    <async-supported>true</async-supported>  </servlet>  <servlet-mapping>    <servlet-name>spring</servlet-name>    <url-pattern>/</url-pattern>  </servlet-mapping> 

备注:

spring的映射一定要是/,否则swagger2中需要引入相关静态资源可能会因为找不到而导致页面加载失败。
例如:
http://localhost/swagger-resources/configuration/ui Failed to load resource: the server responded with a status of 404 (Not Found)

以上为本次记录的全部内容,注解相关API请移步官网参考,因没有正式深度使用,记录的内容较为粗浅,后续正式使用后会进行更新。