「这是我参与11月更文挑战的第24天,活动详情查看:2021最后一次更文挑战」
相关文章
Java随笔记:Java随笔记
前言
- 上一篇我们讲到了
@ApiModel()
。 - 今天给大家带来
@ApiModelProperty()
详解! - 顾名思义,这玩意是用来标注属性的
ApiModelProperty()
- 熟悉的小伙伴们都知道了,先撸进去看看!
-
@Target({ElementType.METHOD, ElementType.FIELD}) @Retention(RetentionPolicy.RUNTIME) public @interface ApiModelProperty { String value() default ""; String name() default ""; String allowableValues() default ""; String access() default ""; String notes() default ""; String dataType() default ""; boolean required() default false; int position() default 0; boolean hidden() default false; String example() default ""; /** @deprecated */ @Deprecated boolean readOnly() default false; ApiModelProperty.AccessMode accessMode() default ApiModelProperty.AccessMode.AUTO; String reference() default ""; boolean allowEmptyValue() default false; Extension[] extensions() default {@Extension( properties = {@ExtensionProperty( name = "", value = "" )} )}; public static enum AccessMode { AUTO, READ_ONLY, READ_WRITE; private AccessMode() { } } }
- 由
@Target
的参数可知:它是使用在属性上或者方法上! - 由
@Retention
的参数可知:它是运行时生效的! - 那么,这么多参数分别是干嘛的呢?下面详细道来。
-
测试案例
-
@Data @ApiModel(value = "学生类",description = "这是类的详细描述信息呀",parent = CourseResponse.class,subTypes = CourseResponse.class) public class StudentResponse{ @ApiModelProperty(value = "姓名", name = "name", allowableValues = "32", access = "1", notes = "用户的姓名", dataType = "String", required = false, position = 0, hidden = false, example = "大鱼", readOnly = false, reference = "name", allowEmptyValue = false ) private String name; @ApiModelProperty(value = "年龄") private int age; @ApiModelProperty(value = "爱好") private String like; @ApiModelProperty() private CourseResponse perResponse; }
-
-
启动看结果
-
效果已经看到了,下面我们对其每个参数进行解释。
总结
-
value()
- 参数类型为String,作用为此属性的简要描述。
-
name()
- 参数类型为String,作用为允许重写属性的名称。
-
allowableValues()
- 参数类型为String,作用为限制此参数存储的长度。
-
access()
- 参数类型为String,作用为允许从API文档中过滤属性
-
notes()
- 参数类型为String,作用为该字段的注释说明
-
dataType()
- 参数类型为String,作用为参数的数据类型。
-
required()
- 参数类型为String,作用为指定参数是否可以为空,默认为false
-
position()
- 参数类型为int,作用为允许显式地对模型中的属性排序。
-
hidden()
- 参数类型为boolean,作用为是否允许模型属性隐藏在Swagger模型定义中,默认为false。
-
example()
- 参数为String类型,作用为属性的示例值。
-
readOnly()
- 参数类型为boolean,作用为是否允许将属性指定为只读,默认为false。
-
reference()
- 参数类型为String,作用为指定对对应类型定义的引用,重写指定的任何其他数据名称。
-
allowEmptyValue()
- 参数类型为boolean,作用为是否允许传递空值,默认为false
- 由于这个参数实在太多,而且很多不大常用,我就不一一演示对比的区别了。
- 感兴趣的小伙伴们可以对着我的总结来试一试~
- 以上都是个人所言,如有不对,欢迎指出。
- 如果对您有帮助,希望给我点个赞点个关注呗!
路漫漫其修远兮,吾必将上下求索~
如果你认为i博主写的不错!写作不易,请点赞、关注、评论给博主一个鼓励吧~hahah