一、配置依赖
<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>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-spring-web</artifactId>
<version>2.7.0</version>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-common</artifactId>
<version>2.7.0</version>
</dependency><dependency>
<groupId>io.swagger</groupId>
<artifactId>swagger-annotations</artifactId>
<version>1.5.6</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.8.0</version>
</dependency>
二、配置applicationContext.xml
<!-- Swagger支持(暂时注释掉提高平台性能,需要此功能,可以放开注释) -->
<context:component-scan base-package="springfox"/>
<!-- 自动扫描,使springMVC认为包下用了@Controller注解的类是控制器 -->
<context:component-scan base-package="com.chuji.controller">
<!-- 只扫描Controller注解 -->
<context:include-filter type="annotation" expression="org.springframework.stereotype.Controller"/>
</context:component-scan>
<context:component-scan base-package="com.chuji.service.*">
<!-- 配置只扫描Service注解 -->
<context:include-filter type="annotation" expression="org.springframework.stereotype.Service"/>
</context:component-scan>
<!-- 将 springSwaggerConfig加载到spring容器 -->
<!-- 将自定义的swagger配置类加载到spring容器 -->
<bean class="com.chuji.interceptor.SwaggerConfig"/>
三、创建mybatis-config.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configuration
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
<settings>
<setting name="mapUnderscoreToCamelCase" value="true"/>
</settings>
<plugins>
<!-- com.github.pagehelper为PageHelper类所在包名 -->
<plugin interceptor="com.github.pagehelper.PageHelper">
<!-- 设置数据库类型Oracle,Mysql,MariaDB,SQLite,Hsqldb,PostgreSQL六种数据库 -->
<property name="dialect" value="mysql"/>
</plugin>
</plugins>
</configuration>
四、配置spring-mvc.xml扫描全部的controller
<!-- 扫描注解,这样com.chuji包下的文件都能被扫描 -->
<!--<context:component-scan base-package="com.chuji"/>-->
<context:component-scan base-package="com.chuji.controller"
use-default-filters="false">
<context:include-filter expression="org.springframework.stereotype.Controller"
type="annotation" />
</context:component-scan>
五、下载swagger文件
下载swagger的dist文件夹
在WEB-INF下建一个swagger的文件夹,用来存放swagger的dist页面文件
修改swagger文件的index.html,改成/项目名/v2/api-docs
六、创建swagger的核心配置类
package com.chuji.interceptor;
import io.swagger.annotations.ApiOperation;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.EnableWebMvc;
import springfox.documentation.builders.ApiInfoBuilder;
import springfox.documentation.builders.PathSelectors;
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: 欧阳锋
* @Description: swagger的核心配置类
* @Date: Created in 14:32 2021/3/19
* @Modified By:
*/
@Configuration//声明此类是一个swagger的核心配置类
@EnableSwagger2//启用Swagger
@EnableWebMvc//启用SpringMVC
public class SwaggerConfig {
@Bean
public Docket createRestApi() {
return new Docket(DocumentationType.SWAGGER_2)
.apiInfo(apiInfo())
.select()
//扫描指定包中的swagger注解
.apis(RequestHandlerSelectors.basePackage("com.chuji.controller"))
//扫描所有有注解的api,用这种方式更灵活
.apis(RequestHandlerSelectors.withMethodAnnotation(ApiOperation.class))
.paths(PathSelectors.any())
.build();
}
private ApiInfo apiInfo() {
return new ApiInfoBuilder()
.title("chuji-Fire Api Documentation")
.description("更多请关注http://192.168.0.8:8080/Fire/swagger/index.html")
.termsOfServiceUrl("http://192.168.0.8:8080/")
.license("tangziqian0001@163.com")
.version("1.0.0")
.build();
}
}
七、在controller上使用swagger的注解
@Api配置扫描controller
/**
* @Author: 欧阳锋
* @Description: PC首页的查询Controller
* @Date: Created in 16:48 2021/3/15
* @Modified By:
*/
@Api(value = "PCIndexController", tags = {"PC首页controller"})
@Controller
@RequestMapping("/pc/index")
public class PCIndexController {
@ApiOperation配置方法的说明和返回的类型
@ApiImplicitParams配置需要的参数列
@ApiImplicitParam配置具体参数,设置参数类型(paramType),参数名(name),参数说明(value),是否必填(required),数据类型(dataType)
/**
* 验证抖音分享直播链接并获取数据
* @param request
* @param response
* @param url 抖音分享直播链接
* @return
*/
@ApiOperation(value="验证抖音分享直播链接并获取数据",response = TiktokVO.class)
@ApiImplicitParams({
@ApiImplicitParam(paramType="header", name = "x-auth-token", value = "用户Token", required = true, dataType = "String"),
@ApiImplicitParam(paramType="query", name = "url", value = "抖音分享直播链接", required = true, dataType = "String"),
})
@RequestMapping(value = "/getTiktokLive", method = RequestMethod.GET)
public @ResponseBody
CommonResponse<TiktokVO> getTiktokLive(HttpServletRequest request, HttpServletResponse response, String url) throws Exception {
八、启动项目、浏览器访问地址
http://localhost:8080/Fire/swagger/index.html
本人自己结合网上建议做的,望大家参考,有什么都可以评论!!!