VB.net 2010 视频教程 VB.net 2010 视频教程 python基础视频教程
SQL Server 2008 视频教程 c#入门经典教程 Visual Basic从门到精通视频教程
当前位置:
首页 > 编程开发 > Java教程 >
  • 11 — springboot集成swagger — 更新完毕

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,自行下载安装包,安装之后玩一下

作者:紫邪情

 

出  处:https://www.cnblogs.com/xiegongzi/p/15549226.html



相关教程