SpringBoot+Swagger2四步整合

第一步:添加相关依赖

<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.5.9.RELEASE</version>
</parent> <properties>
<swagger2.version>2.7.0</swagger2.version>
</properties> <dependencies>
<!--springBoot 相关依赖-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!--swagger2 相关依赖-->
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>${swagger2.version}</version>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<version>${swagger2.version}</version>
</dependency> </dependencies>

创建SrpingBoot启动类

/**
* Springboot+Swagger整合启动类
*
* @author Y.yang
* @date 2019/3/12
*/
@SpringBootApplication
public class SwaggerApplication { public static void main(String[] args) {
SpringApplication.run(SwaggerApplication.class, args);
}
}

第二步:配置Swagger2

注意添加@Configuration EnableSwagger2注解

/**
* Swagger2 接口Api文档 配置文件
*
* @author Y.yang
* @date 2019/3/12
*/
@Configuration
@EnableSwagger2
public class SwaggerConfig { /**
* 初始化创建Swagger Api
*/
@Bean
public Docket createRestApi() {
return new Docket(DocumentationType.SWAGGER_2)
// 详细信息定制
.apiInfo(apiInfo())
.select()
// 指定当前包路径
.apis(RequestHandlerSelectors.basePackage("com.fame.controller"))
// 扫描所有 .apis(RequestHandlerSelectors.any())
.paths(PathSelectors.any())
.build();
} /**
* 添加摘要信息
*/
private ApiInfo apiInfo() {
// 用ApiInfoBuilder进行定制
return new ApiInfoBuilder()
.title("标题:springBoot-Swagger2整合学习")
.description("描述:文档构建器")
.contact(new Contact("Fame-springBoot-Swagger2", null, null))
.version("版本号: 1.0")
.build();
}
}

springfox为我们提供了一个Docket(摘要的意思)类,我们需要把它做成一个Bean注入到spring中,

显然,我们需要一个配置文件,并通过一种方式(显然它会是一个注解)告诉程序,这是一个Swagger配置文件。

springfox允许我们将信息组合成一个ApiInfo的类,作为构造参数传给Docket(当然也可以不构造这个类,而直接使用null,但是你的这个API就太low了)。

第三步:创建测试实例

/**
* Swagger接口测试
*
* @author Y.yang
* @date 2019/3/12
*/
@RestController
public class UserController { @GetMapping("/get")
public String get(){
return "Hello Swagger2";
}
}

第四步:输入SwaggerUI地址

http://localhost:8080/swagger-ui.html

Swagger2基本使用-常用注解

接口/方法常用注解

/**
* Swagger接口测试
*
* @author Y.yang
* @date 2019/3/12
*/
@Api(value = "用户信息", tags = { "用户信息" })
@RestController
public class UserController { @ApiOperation(value = "用户信息分页查询")
@GetMapping("/page")
public String page(User user) {
return "Hello Swagger2";
} @ApiOperation(value = "用户信息查询")
@ApiImplicitParams({
@ApiImplicitParam(name = "id", value = "用户ID", required = true, dataType = "Integer"),
@ApiImplicitParam(name = "file", value = "文件导入", required = true, dataType = "MultipartFile")
})
@GetMapping("/id")
public UserVo getUser(Long id, MultipartFile file) {
return new UserVo();
}
}

@Api: 描述类/接口的主要用途

用于类;表示标识这个类是swagger的资源

tags–表示说明

value–也是说明,不会显示在接口文档上,可以使用tags替代

但是tags如果有多个值,会生成多个list

@Api(value = "用户信息", tags = { "用户信息" })

@ApiOperation: 描述方法用途

@ApiOperation(value = "用户信息分页查询")

@ApiImplicitParam: 描述方法的参数

@ApiImplicitParams: 描述方法的参数(Multi-Params)

@ApiImplicitParams({
@ApiImplicitParam(name = "id", value = "用户ID", required = true, dataType = "Integer"),
@ApiImplicitParam(name = "file", value = "文件导入", dataType = "MultipartFile")
})

实体类常用注解

/**
* 用户信息 数据传输对象 Dto(Data Transfer Object)
*
* @author Y.yang
* @date 2019/3/29
*/
@ApiModel(description = "用户信息请求对象")
@Data
public class User implements Serializable { private static final long serialVersionUID = -6986638131456347054L; @ApiModelProperty(value = "姓名")
private String username; @ApiModelProperty(value = "性别")
private String sex; @ApiModelProperty(value = "年龄")
private Integer age; }

@ApiModel:描述实体类(Dto、Vo、Do等)

@ApiModel(description = "用户信息请求对象")

@ApiModelProperty:描述实体类的字段

@ApiModelProperty(value = "姓名")

SpringBoot+Swagger2 整合的更多相关文章

  1. SpringBoot与Swagger2整合

    一.Swagger简介与优势 相信各位在公司写API文档数量应该不少,当然如果你还处在自己一个人开发前后台的年代,当我没说,如今为了前后台更好的对接,还为了以后交接方便,都有要求写API文档. Swa ...

  2. SpringBoot+Swagger整合API

    SpringBoot+Swagger整合API Swagger:整合规范的api,有界面的操作,测试 1.在pom.xml加入swagger依赖 <!--整合Swagger2配置类--> ...

  3. 学习SpringBoot,整合全网各种优秀资源,SpringBoot基础,中间件,优质项目,博客资源等,仅供个人学习SpringBoot使用

    学习SpringBoot,整合全网各种优秀资源,SpringBoot基础,中间件,优质项目,博客资源等,仅供个人学习SpringBoot使用 一.SpringBoot系列教程 二.SpringBoot ...

  4. SpringMVC中使用Swagger2整合

    Swagger2是什么 Swagger 是一款RESTFUL接口的文档在线自动生成+功能测试功能软件. Swagger 是一个规范和完整的框架,用于生成.描述.调用和可视化 RESTful 风格的 W ...

  5. springboot+swagger2

    springboot+swagger2 小序 新公司的第二个项目,是一个配置管理终端机(比如:自动售卖机,银行取款机)的web项目,之前写过一个分模块的springboot框架,就在那个框架基础上进行 ...

  6. SpringBoot 同时整合thymeleaf html、vue html和jsp

    问题描述 SpringBoot如何同时访问html和jsp SpringBoot访问html页面可以,访问jsp页面报错 SpringBoot如何同时整合thymeleaf html.vue html ...

  7. SpringBoot+AOP整合

    SpringBoot+AOP整合 https://blog.csdn.net/lmb55/article/details/82470388 https://www.cnblogs.com/onlyma ...

  8. SpringBoot+Redis整合

    SpringBoot+Redis整合 1.在pom.xml添加Redis依赖 <!--整合Redis--> <dependency> <groupId>org.sp ...

  9. springboot+maven整合spring security

    springboot+maven整合spring security已经做了两次了,然而还是不太熟悉,这里针对后台简单记录一下需要做哪些事情,具体的步骤怎么操作网上都有,不再赘述.1.pom.xml中添 ...

随机推荐

  1. 机器学习、深度学习、和AI算法可以在网络安全中做什么?

    本文由  网易云发布. 本文作者:Alexander Polyakov,ERPScan的首席技术官和联合创始人.EAS-SEC总裁,SAP网络安全传播者. 现在已经出现了相当多的文章涉及机器学习及其保 ...

  2. 【转】目标检测之YOLO系列详解

    本文逐步介绍YOLO v1~v3的设计历程. YOLOv1基本思想 YOLO将输入图像分成SxS个格子,若某个物体 Ground truth 的中心位置的坐标落入到某个格子,那么这个格子就负责检测出这 ...

  3. Mysql错误处理: /usr/bin/mysqld_safe: line xxx: xxxx Killed ... (mysql自动停止 Plugin FEDERATED is disabled 的完美解决方法)

    哈哈哈,问题总算解决,内心抑不住的开心 centos mysql 问题:Plugin 'FEDERATED' is disabled. /usr/sbin/mysqld: Table 'mysql.p ...

  4. create session 参数介绍

    Create Session alias, url, headers={}, cookies=None, auth=None, timeout=None, proxies=None, verify=F ...

  5. 转的很好的js 入门

    JavaScript概述 JavaScript的历史 1992年Nombas开发出C-minus-minus(C--)的嵌入式脚本语言(最初绑定在CEnvi软件中).后将其改名ScriptEase.( ...

  6. python3模块: json & pickle

    概念: 序列化(Serialization): 将对象的状态信息转换为可以存储或可以通过网络传输的过程,传输的格式可以是JSON,XML等.反序列化就是从存储区域(JSON,XML)读取反序列化对象的 ...

  7. CSS初窥

  8. Web应用配置虚拟主机(www.baidu.com)

    最终效果:浏览器地址栏输入www.baidu.com访问时,会显示自己的网页 1.创建文件 任意盘新建一个www.baidu.com文件,在该文件夹下新建WEB-INF文件.自己写的一个html文件, ...

  9. 使用js栈stack类的实现

    使用js栈stack类的实现 /*使用栈stack类的实现*/ function stack() { this.dataStore = [];//保存栈内元素,初始化为一个空数组 this.top = ...

  10. linux文件映射到windows(方便用虚拟机搭建linux服务器,用本地windows代码编辑)

    1,安装docker: https://docs.docker.com/install/linux/docker-ce/centos/ 2,linux上创建好需要共享的目录 /data/share(可 ...