@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
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
路漫漫其修远兮,吾必将上下求索~
如果你认为i博主写的不错!写作不易,请点赞、关注、评论给博主一个鼓励吧~hahah