1 pom.xml中配置引入依赖
<!--引入swagger-->
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>2.9.2</version>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<version>2.9.2</version>
</dependency>
2 创建配置类Swagger2Config
通过api函数创建Docket的Bean之后,apiInfo()用来创建该Api的基本信息
/**
* Swagger2配置类
* 在与spring boot集成时,放在与Application.java同级的目录下。
* 通过@Configuration注解,让Spring来加载该类配置。
* 再通过@EnableSwagger2注解来启用Swagger2。
*/
@EnableSwagger2
@Configuration
public class Swagger2Config {
@Bean
public Docket api() {
/** SWAGGER_2版本 */
return new Docket(DocumentationType.SWAGGER_2)
.apiInfo(apiInfo())
/** 选择那些路径和api会生成document */
.select()
/** com.example.springstudy.controller 此包下的所有api */
.apis(RequestHandlerSelectors.basePackage("com.example.springstudy.controller"))
/** 对所有路径进行监控 */
.paths(PathSelectors.any())
.build();
}
private ApiInfo apiInfo() {
return new ApiInfoBuilder()
.title("API说明")
.description("描述")
.termsOfServiceUrl("http://localhost:8080/api/")
.version("1.0")
.build();
}
}
3.对接口和实体类添加注解,生成doc
注解 | 说明 |
---|---|
@Api | 使用在Controller层Api类上(描述类),主要属性有tags(标签)、hidden(是否隐藏)、value、authorizations等,用于说明类的作用 |
@ApiOperation | 给Controller层api增加方法说明(描述接口或方法),主要属性有value(方法描述)、notes(提示内容)、hidden(是否隐藏)、 httpMethod、ignoreJsonView、response、responseHeaders等等,某些属性注解可自动识别,无需配置。 |
@ApiParam | 用于描述单个参数。 |
@ApiImplicitParams | 对Controller层的方法参数进行说明(一个请求参数),包含多个 @ApiImplicitParam,只有一个属性value |
@ApiImplicitParam | 对Controller层的方法参数进行说明(多个请求参数),主要属性有name(参数名称)、value(参数说明)、required(是否必需)、 example–举例说明、dataType(数据类型)、paramType(参数类型)、dataTypeClass、defaultValue、readOnly等 |
@ApiModel | 用在实体类上,用对象接收参数。主要属性有description(描述)、parent(父类)、subTypes、value、discriminator等 |
@ApiModelProperty | 用在实体类属性上(用对象接收参数时,描述对象的一个字段),主要属性有access、accessMode、allowableValues、allowEmptyValue(是否允许为空)、 dataType(数据类型)、example(示例)、hidden(是否隐藏)、name(名称)、notes、required(是否必需)、value(说明)等。 |
4在浏览器中输入 http://localhost:8080/swagger-ui.html
在接口上追加swagger注解
entity
package com.example.demo.entity;
import com.baomidou.mybatisplus.annotation.*;
import lombok.*;
import java.util.Date;
@Getter
@Data
public class User {
@TableId(type=IdType.AUTO)
private Long id;
private String name;
private int age;
private String email;
//自段添加填充
@TableField(fill= FieldFill.INSERT)
private Date createTime;
@TableField(fill=FieldFill.INSERT_UPDATE)
private Date updateTime;
@Version //乐观锁version注解
private int version;
@TableLogic
private int deleted;
}
mapper接口
package com.example.demo.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.example.demo.entity.User;
import org.apache.ibatis.annotations.Mapper;
import org.springframework.stereotype.Repository;
import java.util.List;
//在对应的mapper上面继承基本的类BaseMapper
//代表持久层
@Repository
public interface UserMapper extends BaseMapper<User> {
public List<User> selectUser(Long id);
}
mapper的xml
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.example.demo.mapper.UserMapper">
<select id="selectUser" resultType="com.example.demo.entity.User">
select * from user where id =#{id}
</select>
</mapper>
service接口层
package com.example.demo.service.impl;
import com.baomidou.mybatisplus.extension.service.IService;
import com.example.demo.entity.User;
import java.util.List;
public interface UserServiceImpl extends IService<User> {
List<User> selectUser(Long id);
}
service实现层
package com.example.demo.service;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.example.demo.entity.User;
import com.example.demo.mapper.UserMapper;
import com.example.demo.service.impl.UserServiceImpl;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.List;
@Service
public class UserService extends ServiceImpl<UserMapper,User> implements UserServiceImpl {
@Autowired
private UserMapper userMapper;
@Override
public List<User> selectUser(Long id){
User user = userMapper.selectById(id);
List<User> list = new ArrayList<>();
list.add(user);
return list;
}
}
controller层
package com.example.demo.controller;
import com.example.demo.entity.User;
import com.example.demo.service.UserService;
import com.example.demo.service.impl.UserServiceImpl;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.AllArgsConstructor;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
import java.util.List;
@RestController
@AllArgsConstructor
@Api(value = "用户管理",tags = "用户管理")
@RequestMapping("/api")
public class controller {
@Resource
UserService userService;
@ApiOperation(value="用户查询",notes = "用户查询")
@GetMapping("/user")
public List<User> selectUser(){
return userService.selectUser(1366738104190881793L);
}
}
所有博客均为自己学习的笔记。如有错误敬请理解。