lombok与swagger冲突的坑, 实体类接参swagger-ui界面上参数不齐全
使用的swagger2
GET请求的接口
实体类接收参数
实体类继承了一个抽象类
swagger-ui界面参数列表只显示抽象类的属性框
@Override
@ApiOperation("查询全部-条件查询")
@GetMapping(value = "/list")
public Result<List<Category>> listCategory(Category Category) {
List<Category> data = categoryService.listCategory(Category);
return Result.success(data);
}
实体类:
@Getter
@Setter
@ToString
@Accessors(chain = true)
@ApiModel(value="Category",description="多级分类", parent = AbsBaseDto.class)
public class Category extends AbsBaseDto<Integer> {
/**
* 分类ID
*/
@ApiModelProperty(value="多级分类ID",name="categoryId")
private Integer categoryId;
/**
* 分类名称
*/
@NotNull(message = "多级分类名称 不能为空")
@ApiModelProperty(value="多级分类名称",name="categoryName")
private String categoryName;
/**
* 分类说明
*/
@ApiModelProperty(value="多级分类说明",name="remark")
private String remark;
}
抽象类:
@Getter
@Setter
public abstract class AbsBaseDto<ID extends Serializable>
implements
IBaseDto<ID> {
protected ID id;
@ApiModelProperty(value="状态",name="status")
protected Integer status;// 状态
@ApiModelProperty(value="创建时间",name="createdTime")
protected Date createdTime;
@ApiModelProperty(value="创建者id",name="creatorId")
protected Long creatorId;
@ApiModelProperty(value="最后修改时间",name="updatedTime")
protected Date updatedTime;
@ApiModelProperty(value="是否存在",name="exists")
protected Boolean exists;// 是否存在
}
参数列表只显示抽象类的属性框, 最重要的接受实体类的参数一个也不显示

经过排查,发现是因为lombok 的@Accessors(chain = true)注解导致的,此注解是使实体类的set方法返回对象本身,使用build式的编码方式,但是这里就却与swagger的注解产生了冲突,导致swagger获取不到实体类的属性,swagger-ui界面无法显示参数.
去掉@Accessors(chain = true)注解之后,swagger正常!
