刚开始的时候,在controller层使用@RequestParam的时候,发现这个参数是必须要输入值的,但是我们有时候必须查询的时候允许参数为空,使用这个注解就不行了。

在集成了swagger2后,找了半天的原因,发现使用@ApiImplicitParam这个注解可以解决这个问题。

对应下面的参数。

所以我们可以使用这个注解来解决我们所遇到的参考为空的问题。

而且已经集成了swagger2,所以我们尽量来使用这个注解吧。

说明: 
1.这里使用的版本:springfox-swagger2(2.4)springfox-swagger-ui (2.4) 
2.这里是说明常用注解的含义和基本用法(也就是说已经对swagger进行集成完成) 
没有集成的请参见 
SpringBoot集成springfox-swagger2构建restful API 
SpringMVC集成springfox-swagger2构建restful API 
官网WIKI 
常用注解: 
- @Api()用于类; 
表示标识这个类是swagger的资源 
- @ApiOperation()用于方法; 
表示一个http请求的操作 
- @ApiParam()用于方法,参数,字段说明; 
表示对参数的添加元数据(说明或是否必填等) 
- @ApiModel()用于类 
表示对类进行说明,用于参数用实体类接收 
- @ApiModelProperty()用于方法,字段 
表示对model属性的说明或者数据操作更改 
- @ApiIgnore()用于类,方法,方法参数 
表示这个方法或者类被忽略 
- @ApiImplicitParam() 用于方法 
表示单独的请求参数 
- @ApiImplicitParams() 用于方法,包含多个 @ApiImplicitParam

具体使用举例说明: 
@Api() 
用于类;表示标识这个类是swagger的资源 
tags–表示说明 
value–也是说明,可以使用tags替代 
但是tags如果有多个值,会生成多个list

@Api(value="用户controller",tags={"用户操作接口"})@RestControllerpublic class UserController {}

效果图: 

@ApiOperation() 用于方法;表示一个http请求的操作 
value用于方法描述 
notes用于提示内容 
tags可以重新分组(视情况而用) 
@ApiParam() 用于方法,参数,字段说明;表示对参数的添加元数据(说明或是否必填等) 
name–参数名 
value–参数说明 
required–是否必填

@Api(value="用户controller",tags={"用户操作接口"})@RestControllerpublic class UserController {@ApiOperation(value="获取用户信息",tags={"获取用户信息copy"},notes="注意问题点")@GetMapping("/getUserInfo")public User getUserInfo(@ApiParam(name="id",value="用户id",required=true) Long id,@ApiParam(name="username",value="用户名") String username) {// userService可忽略,是业务逻辑User user = userService.getUserInfo();return user;}}

​​​​​

效果图: 

@ApiModel()用于类 ;表示对类进行说明,用于参数用实体类接收 
value–表示对象名 
description–描述 
都可省略 
@ApiModelProperty()用于方法,字段; 表示对model属性的说明或者数据操作更改 
value–字段说明 
name–重写属性名字 
dataType–重写属性类型 
required–是否必填 
example–举例说明 
hidden–隐藏

@ApiModel(value="user对象",description="用户对象user")public class User implements Serializable{private static final long serialVersionUID = 1L;@ApiModelProperty(value="用户名",name="username",example="xingguo")private String username;@ApiModelProperty(value="状态",name="state",required=true)private Integer state;private String password;private String nickName;private Integer isDeleted;@ApiModelProperty(value="id数组",hidden=true)private String[] ids;private List<String> idList;//省略get/set}

​​​​​​

@ApiOperation("更改用户信息")@PostMapping("/updateUserInfo")public int updateUserInfo(@RequestBody @ApiParam(name="用户对象",value="传入json格式",required=true) User user){int num = userService.updateUserInfo(user);return num;}

效果图: 

@ApiIgnore()用于类或者方法上,可以不被swagger显示在页面上 
比较简单, 这里不做举例

@ApiImplicitParam() 用于方法 
表示单独的请求参数 
@ApiImplicitParams() 用于方法,包含多个 @ApiImplicitParam 
name–参数ming 
value–参数说明 
dataType–数据类型 
paramType–参数类型 
example–举例说明

@ApiOperation("查询测试")@GetMapping("select")//@ApiImplicitParam(name="name",value="用户名",dataType="String", paramType = "query")@ApiImplicitParams({@ApiImplicitParam(name="name",value="用户名",dataType="string", paramType = "query",example="xingguo"),@ApiImplicitParam(name="id",value="用户id",dataType="long", paramType = "query")})public void select(){}

效果图: 

【java基础知识】swagger组件常用命令相关推荐

  1. php redis操作命令,Redis基础知识之————php-Redis 常用命令专题

    Keys del,delete - 删除键 dump - 返回存储在指定键值的序列化版本. exists - 确定键是否存在 expire,setTimeout,pexpire - 设置键的生存时间( ...

  2. Java基础知识笔记-11_2-Swing用户界面组件

    Java基础知识笔记-11_2-Swing用户界面组件 这章教程两个版本,一个语法是非lambda表达式版本,另一个是lambda表达式版本 非lambda表达式版本 1 Java Swing概述 J ...

  3. java怎么开始学dos,第一阶段-Java基础知识:【第一章 DOS命令与开发环境的配置 + 第一个程序HelloWorld】...

    加油Ideal星河滚烫  你是人间理想 第一阶段 JAVA基础知识 第一章 开发环境的配置 Dos 命令 在正式进入Java学习之前我们来了解一个看起来B格很高的东西--Dos命令 DOS命令,计算机 ...

  4. JAVA基础知识学习全覆盖

    文章目录 一.JAVA基础知识 1.一些基本概念 1.Stringbuffer 2.局部变量成员变量 3.反射机制 4.protect 5.pow(x,y) 6.final ,finally,fina ...

  5. Java基础知识 廖雪峰教程笔记

    Java基础知识 Java基础知识 java简介 名词解释 运行Java程序 Java基本数据类型 模块 包装类型 记录类 异常处理 Java异常 使用Commons Logging 使用log4j ...

  6. Java基础知识第二讲:Java开发手册/JVM/集合框架/异常体系/Java反射/语法知识/Java IO

    Java基础知识第二讲(Java编程规范/JVM/集合框架/异常体系/Java反射/语法知识/Java IO/码出高效) 分享在java学习及工作中,常使用的一些基础知识,本文从JVM出发,讲解了JV ...

  7. java(5)---Java基础知识大全

    Java基础知识大全 一.基础知识:  1.JVM.JRE和JDK的区别:  JVM(Java Virtual Machine):java虚拟机,用于保证java的跨平台的特性.  java语言是跨平 ...

  8. 【剑指 Java】第 1 弹:靠这份 Java 基础知识总结,我拿到了满意的 Offer

    前言 因为博主是 2021 届毕业生,当时为了准备秋招,特意总结的 Java 基础知识面试高频题,最后也算找到了挺满意的工作.因此回馈给大家,希望能对大家起到一定的帮助. 0. 入门常识 0.1 Ja ...

  9. Java基础知识(二)(Object类的常用方法、日期时间类、System类、StringBuilder类、包装类、Collection集合、Iterator迭代器、泛型、list集Set接口...)

    文章目录 Java基础知识(二) 1.Object类的常用方法 1.1 toString方法 1.2 equals方法 1.3 Objects类 2.日期时间类 2.1 Date类 2.2 DateF ...

最新文章

  1. 努比亚压力键不显示菜单问题
  2. sublime 写lua相关的插件 cocos
  3. lisp 线型虚实变换_绘画|虚实?国风画这叫线型变化!画线条的正确姿势,你对了吗...
  4. java对象内存占用情况分析
  5. 基于顺序存储结构的图书信息表的图书去重(C++)
  6. bootice添加linux_如何使用老毛桃winpe的Bootice工具新建实模式启动项(Grub/Linux)?
  7. ENVI入门系列教程---一、数据预处理---4.2 自动采集控制点的RPC正射校正
  8. 计算机辅助设计 Photoshop 教案,计算机辅助设计①Photoshop学习领域课程标准.doc
  9. 怎么查充电器支不支持pd快充协议_新买的iPhone11不能快充?很可能是因为你没用对充电器...
  10. python基础语法全解/数据类型/面向对象编程
  11. 建模是什么,建模定义,及学习方法
  12. 什么是慢查询?如何优化?
  13. OpenCV 角度计算
  14. EMW3080+STC15轻松实现设备上云2(阿里云物联网平台、智能生活开放平台)
  15. 可!!Win10禁用驱动程序强制签名
  16. sobel算子,scharr算子,Laplacian算子
  17. 江苏省计算机二级Python备考经验(2020年10月考试)
  18. Redis之地理坐标
  19. [日常] 1. 信息安全
  20. Linux - Ftp客户端安装、创建Ftp用户和登录

热门文章

  1. 关于使用rem单位,calc()进行自适应布局
  2. Vue.JS学习笔记
  3. 【设计模式】学习笔记8:命令模式
  4. Dual-arm cooperation and implementing for robotic harvesting tomato using binocular vision(摘西红柿机器人)
  5. 小米选择了总是打开方式_小米不计成本开启让利:70英寸4K大屏电视2999,K30 5G首卖...
  6. CCF201803-1 跳一跳
  7. 基本BASH SHELL脚本命令——Linux系统管理命令-检测程序、检测磁盘空间
  8. python中keyboardinterrupt_为什么我不能在python中处理KeyboardInterrupt?
  9. base64位转成二进制流_你知道 Base64 编码中的 64 指的是什么吗?
  10. 从问题出发,解密Oracle rdba结构