zoukankan      html  css  js  c++  java
  • Dozer--第三方复制工具,哎哟,还不错!

             Dozer简单点说,就是拷贝工具,也是复制工具的意思,官方的解释是:Dozer is a Java Bean to Java Bean mapper that recursively copies data from one object to another. Typically, these Java Beans will be of different complex types.非常直白,就是类与类之间的属性复制,包含复杂的属性,这点非常不错,嗯嗯,看详细运用

             引入maven

    <dependency>
    	<groupId>net.sf.dozer</groupId>
    	<artifactId>dozer</artifactId>
    	<version>5.5.1</version>
    </dependency>

    然后再写一个简单的工具类,例如以下:

    /**
     * 属性复制工具
     * 
     * @author Dan
     *
     */
    public class DozerBeanMapperUtil {
    	private static DozerBeanMapper mapper;
    	
    	private DozerBeanMapperUtil() {
    	
    	}
    
    	public static DozerBeanMapper getInstance() {  
    		if(mapper==null){
    			mapper = new  DozerBeanMapper();
    		}
    		return mapper;
    	}
    }

    由于仅仅是做拷贝,个人认为单例最为合适,然后就是怎么用了,呵呵
    public static void main(String[] args) {
    		DozerBeanMapper dozer = DozerBeanMapperUtil.getInstance();
    		User u1 =  new User();
    		u1.setName("u1");
    		System.out.println(u1.getName());
    		User u2 =  new User();
    		dozer.map(u1, u2);
    		System.out.println(u2.getName());
    	}
    非常easy的main方法,我仅仅是把u1拷贝到u2而已.实际打印出来u2的名字也是u1,说明条用成功


    这样的方式大多数用在webserver上,将各户提交的VO转成model,或者将model转成各户须要的VO,可是这里注意的是,假设与Hibernate的表关联并用,会出现循环等错误的现象,这个常常出如今类与类有@manyToOne和@oneTomany的关系,假设出现了,就请另想办法解决吧,普通情况下还是屡试不爽的


  • 相关阅读:
    处理了一个“服务器能ping得通,但telnet连接失败”导致数据库登录不了的问题
    解决了一个oracle登录缓慢的问题
    今天解决了一个mysql远程登录和本机ip登录都失败的问题
    c++笔记
    c语言笔记
    常见并发与系统设计
    linux网络IO笔记
    linux文件IO全景解析
    linux网络协议笔记
    长大后才懂的蜡笔小新 ​​​​
  • 原文地址:https://www.cnblogs.com/mthoutai/p/6919977.html
Copyright © 2011-2022 走看看