Selma

Java 实体-实体的映射框架

坚强是说给别人听的谎言 提交于 2020-05-08 05:55:27
<div id="content_views" class="markdown_views"> <!-- flowchart 箭头图标 勿删 --> <svg xmlns="http://www.w3.org/2000/svg" style="display: none;"> <path stroke-linecap="round" d="M5,0 0,2.5 5,5z" id="raphael-marker-block" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);"></path> </svg> <h3 id="一object-mapping-的技术分类"><a name="t0"></a>一、Object mapping 的技术分类:</h3> <ul> <li><p>运行期 反射调用set/get 或者是直接对成员变量赋值 。 该方式通过invoke执行赋值 *,实现时一般会采用beanutil, Javassist等开源库。这类的代表:Dozer,ModelMaper</p></li> <li><p>编译期 动态生成set/get代码的class文件 ,在运行时直接调用该class文件。* 该方式实际上扔会存在set/get代码,只是不需要自己写了。 这类的代表:MapStruct,Selma,Orika ##

Bean 字段复制利器 MapStruct

蹲街弑〆低调 提交于 2019-12-16 11:33:02
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 本文聊一个工具类,MapStruct ,它是一个在 dto,po(do/entity),vo 等这些 pojo 中转换字段的一个工具,在应用中经常有这样的转换,在 spring 和 apache-commons 中也有 BeanUtils 复制,但不够灵活, 我之前也用反射写过一个字段复制 ,这种复制一般来是是很大量的,用反射会使系统的性能降低,有一种更高效的办法就是使用字节码工具类生成这些代码,这时在编译期就把代码弄好了,并且出错也好调试。 除了 MapStruct ,类似的工具还有 Spring 的 BeanUtils ,apachecommons 的 BeanUtils Dozer - Mapper that copies data from one object to another using annotations and API or XML configuration. JMapper - Uses byte code manipulation for lightning-fast mapping. Supports annotations and API or XML configuration. ModelMapper - Intelligent object mapping library