打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
lombok与swagger冲突的坑, 实体类接参swagger

使用的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@Setterpublic 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正常!

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
SpringBoot Swagger3.0配置
【精选】Swagger 3.0快速入门_swagger3
Swagger入门教程(三)
Spring Boot集成Swagger2并替换默认的UI
swagger2 注解说明 ( @ApiImplicitParams )
Springboot中整合knife4j接口文档
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服