spring boot 接口接受参数时,封装参数内部的泛型对象

这个问题困扰了我好多天,一直以为需要用jackson的反序列化做这个功能,奈何在JsonDeserializer的deserializer的方法参数中找不到可用的反射对象,然后就一直困扰着我,各种翻资料,看api,着实吃力
后来发现之前用过的一个注@JsonFormat,之前一直使用作为时间的格式化,但是其中的一个属性表示可以定义格式化的@JsonFormat(shape = JsonFormat.Shape.OBJECT)

然后,困扰我好几天的问题就这样简单的解决了,之前一直坚信jackson肯定有内部的解决方法,但是就是找不到,然后用自己的实现方式又很繁琐

以下是实例代码:

@Data
@Accessors(chain = true)
public class PageDto<T> extends Page<T> {


    /**
     * 查询数据列表
     */
    @JsonView(BaseEntity.BaseEntityView.class)
    private List<T> records = Collections.emptyList();

    /**
     * 总数
     */
    @JsonView(BaseEntity.BaseEntityView.class)
    private long total = 0;
    /**
     * 每页显示条数,默认 10
     */
    @JsonView(BaseEntity.BaseEntityView.class)
    private long size = 10;

    /**
     * 当前页
     */
    @JsonView(BaseEntity.BaseEntityView.class)
    private long current = 1;


    /**
     * 当前总页数
     */
    @JsonView(BaseEntity.BaseEntityView.class)
    private long pages;


    /**
     * 进行 count 查询 【 默认: true 】
     */
    private boolean isSearchCount = true;

    /**
     * 是否进行分页查询
     */
    private boolean isPageable = true;

    /**
     * 查询条件封装
     */
    @JsonView(BaseEntity.BaseEntityView.class)
    @JsonFormat(shape = JsonFormat.Shape.OBJECT)
    private T wrapper;

}

我主要的目的是封装以上实体的wrapper参数,作为mybatis plus 的查询条件,这样我就不用做其他的事,只需要前台传需要查询的参数即可,就这么简单的解决了~~

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。