dozer】的更多相关文章

前言 这篇文章是本人在阅读Dozer官方文档(5.5.1版本,官网已经一年多没更新了)的过程中,整理下来我认为比较基础的应用场景. 本文中提到的例子应该能覆盖JavaBean映射的大部分场景,希望对你有所帮助. 概述 Dozer是什么? Dozer是一个JavaBean映射工具库. 它支持简单的属性映射,复杂类型映射,双向映射,隐式显式的映射,以及递归映射. 它支持三种映射方式:注解.API.XML. 它是开源的,遵从Apache 2.0 协议 Dozer源码地址 Dozer官方文档 安装 引入…
1. Mappings via Annotation public class SourceBean { private Long id; private String name; @Mapping("binaryData") private String data; @Mapping("pk") public Long getId() { return this.id; } public String getName() { return this.name; }…
一.jaxb是什么     JAXB是Java Architecture for XML Binding的缩写.可以将一个Java对象转变成为XML格式,反之亦然.     我们把对象与关系数据库之间的映射称为ORM,其实也可以把对象与XML之间的映射称为OXM(Object XML Mapping).原来JAXB是Java EE的一部分,在JDK1.6中,SUN将其放到了Java SE中,这也是SUN的一贯做法.JDK1.6中自带的这个JAXB版本是2.0,比起1.0(JSR 31)来,JAX…
VO和DO转换(一) 工具汇总 VO和DO转换(二) BeanUtils VO和DO转换(三) Dozer VO和DO转换(四) MapStruct 可参考的资料: dozer官网 Dozer(JavaBean的映射工具)开发手册 dozer扫盲教程 使用maven引入一下,就可以使用dozer了. //这是最新版本,已经几年都没更新了//5.5.1的版本还需要<dependency> <groupId>net.sf.dozer</groupId> <artifa…
准确的说,是因为pojo无法一招走天下或者说内外部隔离的原因,所以有些时候,不得不在两个bean之间做copy或者转换映射.对于直接性的属性拷贝beanutil以及能够满足大部分要求,但是如果遇到字段不一致或者需要二次处理的情况下,就需要进行人工代码处理了.而且这些重复除非通过某种方式管理起来,不然系统中会有大量的复制粘贴. 周六的时候,一个同事说他们那边使用的dozer,还挺好用的,于是看了下官方手册http://dozer.sourceforge.net/dozer-user-guide.p…
这篇文章是本人在阅读Dozer官方文档(5.5.1版本,官网已经一年多没更新了)的过程中,整理下来我认为比较基础的应用场景. 本文中提到的例子应该能覆盖JavaBean映射的大部分场景,希望对你有所帮助. 概述 Dozer是什么? Dozer是一个JavaBean映射工具库. 它支持简单的属性映射,复杂类型映射,双向映射,隐式显式的映射,以及递归映射. 它支持三种映射方式:注解.API.XML. 它是开源的,遵从Apache 2.0 协议 安装 引入jar包 maven方式 如果你的项目使用ma…
JavaBean深度拷贝利器——Dozer DozerBeanMapper对象之间相同属性名赋值 DozerBeanMapper + 对象转Map方法 Dozer(JavaBean的映射工具)开发手册…
1.dozer 做类型转换的, 新建 xml 文件 描述两个实体的对应关系 ,DozerBeanMapper mapper =new DozerBeanMapper().addMappingFiles(new list<xmlName>);mapper.map(a,b) 将b对想映射给 a ,,dozer 是javabean的映射工具 ,可以将 一个bean映射给另一个bean.. 实例: http://lishaorui.iteye.com/blog/1151513 javassist.ja…
什么是Dozer Dozer是一个Java对象转换工具,可以在JavaBean和JavaBean之间进行递归数据复制,并且适应不同复杂的类型.Dozer会直接将名称相同的属性进行复制,属性名不同或者有特殊的要求则可以在xml中进行配置. 除了使用Dozer,当然你还由其他选择: 典型的解决方案就是手动拷贝,弊端很明显,代码中充斥大量Set 和Get方法,真正的业务被埋藏值与值的拷贝之中. 另一种方案就是使用BeanUtil,但BeanUtil不够很好的灵活性,有时候还不得不手动拷贝.Dozer可…
前言:项目中,经常会遇到各层对象之间相互进行值传递的过程,如在数据据持久层有一持久类EntityA,在视图层可能会变为ViewA,通常情况下,这两个类的属性 名称 .类型都是一致的,   在两个对象传值的过程中,有几种办法: 1.最基本的set(),get()方法,当对象的属性有很多时,会产生大量的代码 2.apache的common-beanutils.jar 下 BeanUtils().copyProperties(obj1,obj2) 3.dozer 本文主要介绍dozer的用法 1.简介…
maven添加必要的库: <!-- https://mvnrepository.com/artifact/net.sf.dozer/dozer --> <dependency> <groupId>net.sf.dozer</groupId> <artifactId>dozer</artifactId> <version>5.5.1</version> </dependency> <!-- ht…
现在有个复杂对象bean需要在赋值后在另一个地方用,想通过复制的方式拿到这个对象.首选是深度克隆,虽然发现该对象的父类已经实现了Cloneable接口,但父类是通过jar包引入的,而且在clone方法中对该bean一个map<String, Object>属性的处理有问题:获取到map的value时,直接强制转型为某一具体bean,而子类这个map在put时并非该具体bean的类型,因此克隆时报转型失败错误.考虑方案二,通过java序列化方式克隆,父类也已经实现了Serializable接口,…
使用场景:两个领域之间对象转换. 比如:在系统分层解耦过程中, 对外facade接口,一般使用VO对象,而内core业务逻辑层或者数据层通常使用Entity实体. VO对象 package com.maven.demo; public class ProductVO{ private Long id; private String name; private String description; public Long getId() { return id; } public void se…
Dozer数据对象转换神器  …
阅读更多 转载自http://lishaorui.iteye.com/blog/1151513 1.简介     dozer是一种JavaBean的映射工具,类似于apache的BeanUtils.但是dozer更强大,它可以灵活的处理复杂类型之间的映射.不但可以进行简单的属性映射.复杂的类型映射.双向映射.递归映射等,并且可以通过XML配置文件进行灵活的配置. 2.准备    现在开始就小试一下.    首先,需要下载jar包,    dozer.jar :http://dozer.sourc…
简介 Dozer是一款javaBean的映射工具,用于解决一个类到另外一个类的自动适配功能,它即支持简单的映射,也支持复杂类型的双向递归映射(官网). 示例 举个例子,假设说我们现在有User(用户).UserDetail(用户详细)两个实体类,但对外公布时,我们发布了UserDto.UserSimpleDto两个传输对象,现在我们来实现他们之间的相互转化: 用户:记录登录名.密码 /** * @author X */ public class User { private String log…
Dozerhttp://www.manongjc.com/article/50949.html JAVA的映射工具 BeanUtils dozer的使用方法https://blog.csdn.net/qq_39004032/article/details/81106432 dozer使用教程https://blog.csdn.net/drdongshiye/article/details/87027855…
DTO,就是Data Transfer Object,数据传输对象,可以简单理解成请求中的对象. PO,就是Persistant Object,持久化对象,它跟持久层(通常是关系型数据库)的数据结构形成一一对应的映射关系,如果持久层是关系型数据库,那么,数据表中的每个字段(或若干个)就对应PO的一个(或若干个)属性. DO,领域对象(Domain Object),就是从现实世界中抽象出来的有形或无形的业务实体. 比如,在请求接口中,请求参数使用的对象OrderDTO包括订单id,商品名称,商品详…
最近使用唯品会的vjtools的BeanMapper进行对象的深度克隆转换DTO/VO这种操作,Spring Boot的dev-tools热启动,需要把vjtools和dozer包都放到spring-devtools.properties的incloud里面,否则会出现强转失败的问题,原因是dev-tools的热启动使用的是restartClassLoader. 如果只把vjtools加到spring-devtools.properties内,对于一般的克隆都没问题,但是对于如下情况,List内…
jar:commons-beanutils-1.9.3.jar.commons-lang-2.6.jar.dozer-5.3.2.jar.jcl-over-slf4j-1.7.25.jar.slf4j-api-1.7.25.jar 依赖: <dependency> <groupId>net.sf.dozer</groupId> <artifactId>dozer</artifactId> <version>5.4.0</vers…
1.为什么要映射 一个映射的框架在一个分层的体系架构中非常有用,特别是你在创建一个抽象的分层去包装一些特殊数据的变化 vs 这些数据传输到其它层(外部服务的数据对象.领域的数据对象.数据传输对象.内部服务数据对象).因此一个映射框架非常适合于使用在映射器类型的类中,负责将数据从一个数据对象映射到另一个数据对象. 对于分布式系统,一个幅作用就在不同的系统中需要传输各自领域的数据对象,通常情况下,你不想把内部领域数据对象直接暴露给外部,同时也不想把外部数据对象暴露地内部. 数据对象之间的映射已经用传…
依赖: commons-beanutils-1.9.3.jar.commons-lang-2.6.jar.dozer-5.3.2.jar.jcl-over-slf4j-1.7.25.jar.slf4j-api-1.7.25.jar <dependency> <groupId>net.sf.dozer</groupId> <artifactId>dozer</artifactId> <version>5.4.0</version&…
1.简介 dozer是用来两个对象之间属性转换的工具,有了这个工具之后,我们将一个对象的所有属性值转给另一个对象时,就不需要再去写重复的set和get方法了. 2.如果两个类之间的属性有些属性意思一样,但是在命名的时候发生了一些不同,那么可以通过@Mapping注解来进行映射 3.它支持三种映射方式: 注解. API. XML  为官方推荐的配置方式 4. 加入依赖 <dependency> <groupId>net.sf.dozer</groupId> <art…
在一个Web服务的实现中,我们常常需要访问数据库,并将从数据库中所取得的数据显示在用户页面中.这样做的一个问题是:用于在用户页面上展示的数据和从数据库中取得的数据常常具有较大区别.在这种情况下,我们常常需要向服务端发送多个请求才能将用于在页面中展示的数据凑齐. 一个解决该问题的方法就是根据不同需求使用不同的数据表现形式.在一个服务实现中较为常见的数据表现形式有MO(Model Object,在有些上下文中也被称为VO,Value Object)和DTO(Data Transfer Object)…
Awesome系列的Java资源整理.awesome-java 就是akullpp发起维护的Java资源列表,内容包括:构建工具.数据库.框架.模板.安全.代码分析.日志.第三方库.书籍.Java 站点等等. 经典的工具与库 (Ancients) In existence since the beginning of time and which will continue being used long after the hype has waned. Apache Ant - Build…
最近项目需要搭建新工程,打算使用微服务的形式搭建便于后期拓展.看了一圈发现springboot易于搭建,配置简单,强化注解功能,"just run". Spring Boot makes it easy to create stand-alone, production-grade Spring based Applications that you can "just run". We take an opinionated view of the Spring…
activation~与javaMail有关的jar包,使用javaMail时应与mail.jar (mail.jar和activation.jar)一起加入到lib中去,具体负责mail的数据源和类型等. ApacheActiveMQ~Apache出品,最流行的,能力强劲的开源消息总线.ActiveMQ是一个完全支持JMS1.1和J2EE 1.4规范的 JMS Provider实现. ajaxtags~ajax提供的标签库,使用户能像使用jsp普通标签一样使用ajax. Apache Ant~…
首先,在mvc中如果要用纯异步请不要使用async和await,可以直接使用Task.Run. 其次,在mvc中使用async和await可以让系统开新线程处理Task的代码,同时不必等Task执行结束,就可以同时运行Task之后的代码,加快效率. 要注意的是:如果使用async和await,系统虽然可以同时处理多个事务,但客户端(浏览器)不会有响应,依然要等到所有代码全部执行完毕(包括异步的代码)才能正常响应. /* * 演示如何利用 .net 4.5 的新特性实现异步操作 * * 什么场景下…
[转自]http://www.cnblogs.com/dozer/archive/2010/04/12/MVC-DataAnnotations.html 作者Dozer 今天在这里给大家介绍一下MVC的数据验证框架. 在1.0版中,很多朋友提出了怎么使用客户端验证,今天找了一些资料,发现了客户端验证的方法. 1.MVC中的数据验证框架有何优点? 在Asp.net时代,或者没有使用MVC的验证框架,一般是在BLL层中进行数据验证,但是BLL层的返回值又只能返回一个东西,比如一个字符串,而实际情况中…
from: http://www.dozer.cc/2015/05/netty-auto-reconnect.html 自动重连 用 Netty 写 Client 和 Server 的时候必须要去处理自动重连. Server 端启动时的错误,要去不断重试. Client 端不仅要处理启动时的错误,还要处理中途断开连接. Server 端的处理 和常规的代码相比,Server 端只要处理一个地方即可: public final class TcpServer { private volatile…