dozer比beanUtills更健壮的对象转换工具
2016-03-30 10:56
232 查看
Dozer提供了2种方式去配置需要mapping的类,一种是基于XML,一种是基于API,API的方式是5.3版本才开始提供的,主要是为了解决xml方式不可动态修改mapping配置的问题。
注解解决名称不同
配置文件xml解决文件不同
支持两个对象间的同一属性的类型是异构的对象,比如CarDTO的engine属性是EngineDTO, 而Car的engine属性是Engine。
支持String <-> 基础类型的转换,比如CarDTO的price属性是String, 而Car的price属性是Double.
支持Collection类型间的转换,比如String[] <-> List
支持双向依赖,比如Product有个属性是List parts, 而每个Part也有一个Product属性,此时Product与Part双向依赖了。
属性名实在不一致时,可以用@Mapping定义,而且只在其中一边定义就可以了。
但Dozer 也有个缺点,必须基于getter/setter,不能直接访问public
field
注解解决名称不同
配置文件xml解决文件不同
支持两个对象间的同一属性的类型是异构的对象,比如CarDTO的engine属性是EngineDTO, 而Car的engine属性是Engine。
支持String <-> 基础类型的转换,比如CarDTO的price属性是String, 而Car的price属性是Double.
支持Collection类型间的转换,比如String[] <-> List
支持双向依赖,比如Product有个属性是List parts, 而每个Part也有一个Product属性,此时Product与Part双向依赖了。
属性名实在不一致时,可以用@Mapping定义,而且只在其中一边定义就可以了。
但Dozer 也有个缺点,必须基于getter/setter,不能直接访问public
field
相关文章推荐
- 归并排序(Java描述)
- Android图片实现模糊的一些方法
- HTML学习笔记(三)链接
- framework 开发 之 mmssms.db 中表结构的理解
- 离散数学
- sidekiq 错误
- jQuery学习笔记(三)
- 总结-javascript-ajax
- bzoj4447 SCOI2015 小凸解密码 password
- 引擎设计跟踪(九.14.3.2) Deferred shading的后续实现和优化
- Super不要在Super构造器中调用覆盖方法
- 请求 - 响应模式
- OTL sqlite
- C# 继承与多态,相关关键字virtual、override、new
- 【新人笔记16.04.12更新】JS--动态插入内容
- Libsvm-Faruto Ultimate工具箱学习笔记
- linux 设置group_concat_max_len
- emulator: warning: opening audio input failed
- AVL树的旋转操作 图解 最详细
- 关于intel 网卡 i217 驱动安装不上的问题综述