1导包
<dependency>
<groupId>com.github.xiaoymin</groupId>
<artifactId>knife4j-spring-boot-starter</artifactId>
<version>3.0.3</version>
<!-- springboot不知道他的版本,所以需要配置一下版本号-->
</dependency>
2添加配置
package com.neuedu.mp.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.builders.RequestParameterBuilder;
import springfox.documentation.schema.ScalarType;
import springfox.documentation.service.Contact;
import springfox.documentation.service.ParameterType;
import springfox.documentation.service.RequestParameter;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.ApiSelectorBuilder;
import springfox.documentation.spring.web.plugins.Docket;
import java.util.ArrayList;
import java.util.List;
/**
* @Author:Kevin
* @Date:2023/10/29 10:17
*/
@Configuration
public class Knife4jConfig {
@Bean
public Docket dockerCommon() {
return createDocket("com.neuedu.mp.controller", "his管理");
}
/**
* 用于创建不同组的dockert
*
* @param basePackage
* @return
*/
public Docket createDocket(String basePackage, String groupName) {
ApiSelectorBuilder builder = new Docket(DocumentationType.SWAGGER_2)
.apiInfo(new ApiInfoBuilder()
.title("后台服务接口API文档")
//描述字段支持Markdown语法
.description("#的后端管理服务端接口")
.termsOfServiceUrl("")
.contact(new Contact("张金山", "https://jshand.gitee.io/#/", "zhangjinshan21f@163.com"))
.version("1.0")
.build())//分组名称
.groupName(groupName)
.select()
//这里指定Controller扫描包路径
.apis(RequestHandlerSelectors.basePackage(basePackage))
.paths(PathSelectors.any());
return builder.build().globalRequestParameters(getGlobalRequestParameters());
}
//生成全局通用请求头
private List<RequestParameter> getGlobalRequestParameters() {
List<RequestParameter> parameters = new ArrayList<>();
parameters.add(new RequestParameterBuilder()
.name("Authorization")
.description("token令牌")
.required(false)
.in(ParameterType.HEADER)
.query(q -> q.model(m -> m.scalarModel(ScalarType.STRING)))
.parameterIndex(0)
.build());
return parameters;
}
}
3使用:
package com.neuedu.mp.controller;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.neuedu.mp.entity.SysUser;
import com.neuedu.mp.service.ISysUserService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
/**
* <p>
* 用户信息表 前端控制器
* </p>
*
* @author kevin
* @since 2023-10-29
*/
@RestController
@RequestMapping("/sysUser")
@Slf4j
@Api("用户管理")
public class SysUserController {
@Autowired
ISysUserService sysUserService;
@ApiOperation(value = "用户保存")
@PostMapping("/save")
boolean save(SysUser user){
System.out.println(user);
log.debug(user.toString());
return sysUserService.save(user);
}
@ApiOperation(value = "用户更新")
@PostMapping("/update")
boolean update(SysUser user){
return sysUserService.updateById(user);
}
@ApiOperation(value = "用户列表查询")
@GetMapping("/list")
@ApiImplicitParams(value = {
@ApiImplicitParam(name = "nickName" ,value="昵称")
})
List<SysUser> list(String nickName){
LambdaQueryWrapper <SysUser> queryWrapper=new LambdaQueryWrapper<SysUser>();
if(nickName !=null){
queryWrapper.like(SysUser::getNickName,nickName);
}
return sysUserService.list(queryWrapper);
}
@ApiOperation(value = "用户列表分页查询")
@GetMapping("/page")
@ApiImplicitParams(value = {
@ApiImplicitParam(name = "nickName" ,value="昵称")
})
Page<SysUser> page(Page<SysUser> page,String nickName){
LambdaQueryWrapper <SysUser> queryWrapper=new LambdaQueryWrapper<SysUser>();
if(nickName !=null){
queryWrapper.like(SysUser::getNickName,nickName);
}
return sysUserService.page(page,queryWrapper);
}
@ApiOperation(value = "用户根据主键删除")
@PostMapping("/removeById")
Boolean removeById(Long id){
return sysUserService.removeById(id);
}
}
package com.neuedu.mp.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import java.io.Serializable;
import java.time.LocalDateTime;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
/**
* <p>
* 用户信息表
* </p>
*
* @author kevin
* @since 2023-10-29
*/
@TableName("sys_user")
@ApiModel(value = "SysUser对象", description = "用户信息表")
public class SysUser implements Serializable {
private static final long serialVersionUID = 1L;
@ApiModelProperty("用户ID")
@TableId(value = "user_id", type = IdType.AUTO)
private Long userId;
@ApiModelProperty("部门ID")
private Long deptId;
@ApiModelProperty("用户账号")
private String userName;
@ApiModelProperty("用户昵称")
private String nickName;
@ApiModelProperty("用户类型(00系统用户)")
private String userType;
@ApiModelProperty("用户邮箱")
private String email;
@ApiModelProperty("手机号码")
private String phonenumber;
@ApiModelProperty("用户性别(0男 1女 2未知)")
private String sex;
@ApiModelProperty("头像地址")
private String avatar;
@ApiModelProperty("密码")
private String password;
@ApiModelProperty("帐号状态(0正常 1停用)")
private String status;
@ApiModelProperty("删除标志(0代表存在 2代表删除)")
private String delFlag;
@ApiModelProperty("最后登录IP")
private String loginIp;
@ApiModelProperty("最后登录时间")
private LocalDateTime loginDate;
@ApiModelProperty("创建者")
private String createBy;
@ApiModelProperty("创建时间")
private LocalDateTime createTime;
@ApiModelProperty("更新者")
private String updateBy;
@ApiModelProperty("更新时间")
private LocalDateTime updateTime;
@ApiModelProperty("备注")
private String remark;
public Long getUserId() {
return userId;
}
public void setUserId(Long userId) {
this.userId = userId;
}
public Long getDeptId() {
return deptId;
}
public void setDeptId(Long deptId) {
this.deptId = deptId;
}
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
public String getNickName() {
return nickName;
}
public void setNickName(String nickName) {
this.nickName = nickName;
}
public String getUserType() {
return userType;
}
public void setUserType(String userType) {
this.userType = userType;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public String getPhonenumber() {
return phonenumber;
}
public void setPhonenumber(String phonenumber) {
this.phonenumber = phonenumber;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
public String getAvatar() {
return avatar;
}
public void setAvatar(String avatar) {
this.avatar = avatar;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String getStatus() {
return status;
}
public void setStatus(String status) {
this.status = status;
}
public String getDelFlag() {
return delFlag;
}
public void setDelFlag(String delFlag) {
this.delFlag = delFlag;
}
public String getLoginIp() {
return loginIp;
}
public void setLoginIp(String loginIp) {
this.loginIp = loginIp;
}
public LocalDateTime getLoginDate() {
return loginDate;
}
public void setLoginDate(LocalDateTime loginDate) {
this.loginDate = loginDate;
}
public String getCreateBy() {
return createBy;
}
public void setCreateBy(String createBy) {
this.createBy = createBy;
}
public LocalDateTime getCreateTime() {
return createTime;
}
public void setCreateTime(LocalDateTime createTime) {
this.createTime = createTime;
}
public String getUpdateBy() {
return updateBy;
}
public void setUpdateBy(String updateBy) {
this.updateBy = updateBy;
}
public LocalDateTime getUpdateTime() {
return updateTime;
}
public void setUpdateTime(LocalDateTime updateTime) {
this.updateTime = updateTime;
}
public String getRemark() {
return remark;
}
public void setRemark(String remark) {
this.remark = remark;
}
@Override
public String toString() {
return "SysUser{" +
"userId = " + userId +
", deptId = " + deptId +
", userName = " + userName +
", nickName = " + nickName +
", userType = " + userType +
", email = " + email +
", phonenumber = " + phonenumber +
", sex = " + sex +
", avatar = " + avatar +
", password = " + password +
", status = " + status +
", delFlag = " + delFlag +
", loginIp = " + loginIp +
", loginDate = " + loginDate +
", createBy = " + createBy +
", createTime = " + createTime +
", updateBy = " + updateBy +
", updateTime = " + updateTime +
", remark = " + remark +
"}";
}
}