实现万行级数据读取优化

  • 日期:09-11
  • 点击:(1250)

云顶app

业务场景:

难点一:dubbox时间超时规定为1s,服务调用图如下:

将fetchsize使用了之后,返回时间为1s左右,但是也只是优化了查询,还可以优化数据的封装。优化到这之后我们可以看到dubbox超时时间需要放宽。

数据封装优化的思路Dozer C解决难点二

这里并没有实际去使用,因为需求中使用的时候发现BeanUtils去转换这一环节可以直接去掉。因为数据在传递的终点不是直接发送到前端,而是发送到controller,这种件如果去掉转换消耗会更小,后面在controller直接使用值会更快。

当然,后期可能会需要使用,因为业务肯定还会迭代这一块。只是目前可以省略。

Dozer是一个JavaBean映射工具库。据百度介绍,这是一款转换数据的神器。如果使用的话,需要加入它对应的依赖:

net.sf.dozer dozer5.5.1

如果要映射的两个对象有完全相同的属性名,那么一切都很简单。

Mapper mapper = new DozerBeanMapper();DestinationObject destObject = mapper.map(sourceObject, DestinationObject.class);复制代码

实际应用,项目需要返回VO类的数据,但你在mapper中是使用PO类,返回时需要转换

Mapper announcementDozerMapper =new DozerBeanMapper();/** *