当前位置: 首页 > news >正文

全国最大的网站建设公司排名短视频运营公司网站建设

全国最大的网站建设公司排名,短视频运营公司网站建设,未来网站建设公司的走向,网站建设首页面选择Cglib的BeanCopier进行Bean拷贝的理由是, 其性能要比Spring的BeanUtils,Apache的BeanUtils和PropertyUtils要好很多, 尤其是数据量比较大的情况下。 BeanCopier的主要作用是将数据库层面的Entity转化成service层的POJO。BeanCopier其实已…

选择Cglib的BeanCopier进行Bean拷贝的理由是,
其性能要比Spring的BeanUtils,Apache的BeanUtils和PropertyUtils要好很多,
尤其是数据量比较大的情况下。

  • BeanCopier的主要作用是将数据库层面的Entity转化成service层的POJO。BeanCopier其实已经有很多开源版本,例如DozerMapper、Apache BeanUtils、Spring、Jodd BeanUtils甚至是Cglib都提供了这样的功能。我们这里讲的BeanCopier来自net.sf.cglib.BeanCopier包,cglib是一款比较底层的操作java字节码的框架。 而其他多数都是基于 反射 来实现的 对象复制,所以更底层的字节码方式获取数据赋值,效率会更高
  • 顾名思义,BeanCopier是用于在两个bean之间进行属性拷贝的。BeanCopier支持两种方式,一种是不使用Converter的方式,仅对两个bean间属性名和类型完全相同的变量进行拷贝。另一种则引入Converter,可以对某些特定属性值进行特殊操作。

简单用例 


import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.Test;
import org.springframework.cglib.beans.BeanCopier;
import org.springframework.cglib.core.Converter;import java.math.BigDecimal;import java.sql.Timestamp;
import java.text.SimpleDateFormat;import static org.junit.jupiter.api.Assertions.*;class BeanCopyUtilsTest {/*** 测试说明: 类型不同BeanCopier不会拷贝*/@Testvoid copy() {User user = new User();user.setId(1);user.setName("dearth");BeanCopier copier = BeanCopier.create(User.class, UserVo.class, false);UserVo userVo = new UserVo();copier.copy(user, userVo, null);Assertions.assertNull(userVo.getId());}/*** 测试说明: 提供转换器可以实现不同类型的拷贝*/@Testvoid copyUseConverter() {User user = new User();user.setId(1);user.setName("dearth");user.setCreateTime(new Timestamp(10043143243L));user.setBalance(BigDecimal.valueOf(4000L));BeanCopier copier = BeanCopier.create(User.class, UserVo.class, true);UserVo vo = new UserVo();copier.copy(user, vo, new UserConverter());Assertions.assertNotNull(vo.getCreateTime());Assertions.assertNotNull(vo.getBalance());}@Data@NoArgsConstructor@AllArgsConstructorstaticclass User {private String name;private int id;private Timestamp createTime;private BigDecimal balance;}@Data@NoArgsConstructor@AllArgsConstructorstaticclass UserVo {private String name;private Integer id;private String createTime;private String balance;}static class UserConverter implements Converter {SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");@Overridepublic Object convert(Object o, Class aClass, Object o1) {if (o instanceof Integer) {return (Integer) o;} else if (o instanceof Timestamp) {Timestamp data = (Timestamp) o;return sdf.format(data);} else if (o instanceof BigDecimal) {BigDecimal bg = (BigDecimal) o;return bg.toPlainString();} else {return null;}}}
}

 

  1. BeanCopier只拷贝名称和类型都相同的属性。
  2. 当目标类的setter数目比getter少时,创建BeanCopier会失败而导致拷贝不成功。
  3. 自定义Converter转换器可以转换不同类型的属性

 

http://www.yayakq.cn/news/221022/

相关文章:

  • 企业专业网站建设哪家好室内设计培训班排行榜学校
  • 深圳戈麦斯网站开发正规的网站建设学习网
  • 用代码做网站宝塔负载100wordpress
  • 三视觉平面设计网单页关键词优化费用
  • 简述营销网站建设包括哪些内容公司品牌推广方案范文
  • 基于django的电子商务网站设计网络平台创建需要多少钱
  • 导航网站php做视频网站要用到的服务器
  • 专业商城网站建设多少钱制作人结局金秀贤和谁在一起了
  • 优质网站建设制作wordpress搞个会员注册
  • 福建省亿力电力建设有限公司网站企业公示信息查询系统 江苏
  • 奥远网站建设流程免费网课
  • 兰西网站建设湖北短视频seo
  • 定制网站 北京建设银行个人查询余额
  • 太原企业网站建设开发公司施工管理事业部沟通协调类面试题
  • 怎么做点击图片进网站朝阳区seo搜索引擎优化介绍
  • 临沂网站建广州餐饮管理有限公司
  • 江西做网站找谁提升学历咨询
  • 网站开发设计师岗位职责纯flash网站欣赏
  • 聊城市公司网站建站海口h5建站模板
  • 建设工程信息在什么网站发布做快递单网站
  • wordpress网站案例深圳云购网站制作
  • 网站建设如何给网址设置链接美食网站首页怎么做
  • 网站原型图展示律师事务所 网站模板
  • 我国空间站建造上海城乡建设网站首页
  • 设计网站作品欣赏有那些网站wordpress本地头像
  • 网站制作济南网站做好后
  • 书籍管理网站建设需求文档做网站都需要会什么软件
  • 做网站个网站要多少钱wordpress 小说模块
  • 成都捕鱼网站建设建设银行官方网首页
  • wap 网站 源码天津高端网站建设