1、前言

  • 理论知识滤过,自行百度百科swagger是什么

2、导入依赖


<!-- swagger所需要的依赖-->
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>2.8.0</version>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<version>2.8.0</version>
</dependency>
<!-- 这个依赖是为了渲染swagger文档页面的( 为了好看一点罢了 ) ,swagger真正的依赖是上面两个-->
<dependency>
<groupId>com.github.xiaoymin</groupId>
<artifactId>swagger-bootstrap-ui</artifactId>
<version>1.8.5</version>
</dependency> <dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
</dependency> <dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>1.3.2</version>
</dependency> <dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.75</version>
</dependency> <dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jdbc</artifactId>
</dependency>

4、编写swagger配置文件


package cn.xiegongzi.config; import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import springfox.documentation.builders.ApiInfoBuilder;
import springfox.documentation.builders.PathSelectors;
import springfox.documentation.builders.RequestHandlerSelectors;
import springfox.documentation.service.ApiInfo;
import springfox.documentation.service.Contact;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;
import springfox.documentation.swagger2.annotations.EnableSwagger2; @Configuration // 把当前类丢到spring容器中去
@EnableSwagger2 // 开启swagger功能
public class SwaggerConfig { @Bean
public Docket createRestApi() {
// http://ip地址:端口/项目名/swagger-ui.html#/
ApiInfo apiInfo = new ApiInfoBuilder()
.title( "悠忽有限公司" ) // 网站标题 即:生成的文档网址标题
.description( "这是一个很nice的接口文档" ) // 网站描述 即:对生成文档的描述
.version( "9.0" ) // 版本
.contact( new Contact("紫邪情","https://www.cnblogs.com/xiegongzi/","110" ) ) // 联系人
.license( "tcp" ) // 协议 http / https都可以
.licenseUrl( "http://localhost:8080/" ) // 协议url 即:进入到swagger文档页面的地址
.build();
return new Docket( DocumentationType.SWAGGER_2 ) // swagger版本
.pathMapping( "/" ) // 请求映射路径 就是:controller中有一个接口,然后前台访问的那个接口路径
// 这个可以在生成的文档中进行调试时看到
.select() // 根据pathMapping去进行查询( 做相应的操作 )
// 扫描包 即:哪些地方可以根据我们的注解配置帮我们生成文档
.apis( RequestHandlerSelectors.basePackage( "cn.xiegongzi" ) )
.paths( PathSelectors.any() )
.build()
.apiInfo( apiInfo );
} }

5、编写yml文件


spring:
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://localhost:3306/mybatis_spring?useUnicode=true&characterEncoding=utf-8 # 鸭儿嘞,这个参数配置也要我说明吗,这不是基操吗,
# 这里会报错是因为:我现在使用的驱动是8.0+的,即:上面的com.mysql.cj.jdbc.Driver,这是加了cj啊,这就是表示用的8.0+的驱动涩,而我没有在这里配置timeZone时区是因为:我数据库安装时在my.ini文件中配置了时区,所以有默认时区,因此:这里我的不会报错 如果自己的MySQL安装目录下的my.ini文件没有配置时区,那么就在这里加上时区配置
username: root
password: "072413"

6、编写实体类


package cn.xiegongzi.entity; import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor; import java.io.Serializable; @Data
@AllArgsConstructor
@NoArgsConstructor @ApiModel // 表明这个实体类也可以生成到swagger文档中去 即:后台要接收的参数是一个对象时使用 —— 这个东西可以先不加,在做增加、修改时可以用这个测试一下,从而去swagger中看效果
public class User implements Serializable { @ApiModelProperty // 表明:要生成的实体类属性是注解下的这个
private Integer id; @ApiModelProperty
private String username; @ApiModelProperty
private String phone;
}

7、编写mapper


package cn.xiegongzi.mapper; import cn.xiegongzi.entity.User;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Select; import java.util.List; @Mapper
public interface IUserMapper { @Select("select * from user")
List<User> findAllUser();
}

8、编写service接口和实现类

9、编写controller


package cn.xiegongzi.controller; import cn.xiegongzi.service.IUserService;
import com.alibaba.fastjson.JSON;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController; @RestController
@Api(tags = "用户管理接口集") // 表示当前类可以被生成一个swagger文档 , 可以跟参数tags,参数表示:这整个接口类的名字
public class UserController { @Autowired
private IUserService userService; // @ApiImplicitParam 这个注解是对请求参数做限制用的,如:请求时要求前台传递一个id,那么:在这个注解里面:就可以声明这个参数的类型、
// 是否为必填.....
@GetMapping("/swaggger/doc") // 遵循restful风格 要是使用@RequestMapping的话,会生成多个接口( 即:对应post、get.... )
@ApiOperation(value = "获取全部用户接口" , notes = "获取全部的用户")
// value这个接口的名字
// 对这个接口的描述
public String findAllUser() { return JSON.toJSONString( userService.findAllUser() );
}
}

10、启动项目,测试

结语:

  • 以上的内容是入门,其他的注解开发时自行摸索吧!
  • 还有一种,比swagger更好,就是:postman,自行下载安装包,安装之后玩一下

11 — springboot集成swagger — 更新完毕的更多相关文章

  1. 13 — springboot集成mybatis-plus — 更新完毕

    1.mybatis-plus需要掌握的知识 1).mybatis-plus是什么? 不写了,老衲一般都是直接进官网 mybatis-plus官网地址:https://baomidou.com/guid ...

  2. 12 — springboot集成JPA — 更新完毕

    1.什么是jpa? 一堆不想整在这博客里面的理论知识.这些理论玩意儿就应该自行领悟到自己脑海里 1).JPA & Spring Data JPA 1.1).JPA JPA是Java Persi ...

  3. spring-boot 集成 swagger 问题的解决

    spring-boot 集成 swagger 网上有许多关于 spring boot 集成 swagger 的教程.按照教程去做,发现无法打开接口界面. 项目由 spring mvc 迁移过来,是一个 ...

  4. 20190909 SpringBoot集成Swagger

    SpringBoot集成Swagger 1. 引入依赖 // SpringBoot compile('org.springframework.boot:spring-boot-starter-web' ...

  5. SpringBoot集成Swagger,Postman,newman,jenkins自动化测试.

    环境:Spring Boot,Swagger,gradle,Postman,newman,jenkins SpringBoot环境搭建. Swagger简介 Swagger 是一款RESTFUL接口的 ...

  6. springboot集成swagger添加消息头(header请求头信息)

    springboot集成swagger上篇文章介绍: https://blog.csdn.net/qiaorui_/article/details/80435488 添加头信息: package co ...

  7. SpringBoot集成Swagger接口管理工具

    手写Api文档的几个痛点: 文档需要更新的时候,需要再次发送一份给前端,也就是文档更新交流不及时. 接口返回结果不明确 不能直接在线测试接口,通常需要使用工具,比如postman 接口文档太多,不好管 ...

  8. springboot 集成 swagger 自动生成API文档

    Swagger是一个规范和完整的框架,用于生成.描述.调用和可视化RESTful风格的Web服务.简单来说,Swagger是一个功能强大的接口管理工具,并且提供了多种编程语言的前后端分离解决方案. S ...

  9. springboot 集成swagger ui

    springboot 配置swagger ui 1. 添加依赖 <!-- swagger ui --> <dependency> <groupId>io.sprin ...

随机推荐

  1. 常见SOC启动流程分析

    本文以s5pv210这款SOC为例,分析了其启动流程 在s5pv210的SOC内部,存在着一个内部的ROM和一个内部的RAM 这个内部的ROM叫做 IROM,它是norflash的一种.其不同于板子上 ...

  2. 还在用canvas画格子吗?文字烟花效果更不错噢

    大家好,我是小丞同学,一名前端爱好者 欢迎访问博主的个人网站:一口奶盖 "在人间贩卖声音 等凑够满天星辰 放烟花给你看" 上次的烟花有些许平淡,这次来放大招了,让你的名字在天空绽放 ...

  3. hdu 4288 Coder (线段树+离线)

    题意: 刚开始有一个空集合.有三种操作: 1.往集合中加入一个集合中不存在的数 x 2.从集合中删除一个已经存在的数 x 3.计算集合的digest sum并输出.       digest sum求 ...

  4. 使用google zxing生成二维码图片

    生成二维码工具类: 1 import java.awt.geom.AffineTransform; 2 import java.awt.image.AffineTransformOp; 3 impor ...

  5. Qt5 C++ GUI界面 开发环境配置 详细教程

    本博客已暂停更新,需要请转新博客http://www.whbwiki.com/333.html Qt 下载 Qt 体积很大,有 1GB~3GB,官方下载通道非常慢,相信很多读者会崩溃,所以建议大家使用 ...

  6. node 读取文件内容并响应

    node 读取文件内容并响应 const http = require('http'); const fs = require('fs') //创建 Server const server = htt ...

  7. Linux mem 2.4 Buddy 内存管理机制

    文章目录 1. Buddy 简介 2. Buddy 初始化 2.1 Struct Page 初始化 2.2 Buddy 初始化 3. 内存释放 4. 内存分配 4.1 gfp_mask 4.2 nod ...

  8. RocketMQ源码详解 | Consumer篇 · 其一:消息的 Pull 和 Push

    概述 当消息被存储后,消费者就会将其消费. 这句话简要的概述了一条消息的最总去向,也引出了本文将讨论的问题: 消息什么时候才对被消费者可见? 是在 page cache 中吗?还是在落盘后?还是像 K ...

  9. Oracle 表空间和权限

    表空间 表空间是数据库的逻辑划分,一个表空间只能属于一个数据库.所有的数据库对象都存放在指定的表空间中.但主要存放的是表,所以称作表空间. Oracle中很多优化都是基于表空间的设计理念而实现的,一个 ...

  10. 导出 doc

    ... /** * 导出word * @return * @throws Exception */ @JCall public String word() throws Exception{ Stri ...