1、简介
   
dozer是一种JavaBean的映射工具,类似于apache的BeanUtils。但是dozer更强大,它可以灵活的处理复杂类型之间的映射。不
但可以进行简单的属性映射、复杂的类型映射、双向映射、递归映射等,并且可以通过XML配置文件进行灵活的配置。

2、准备

   现在开始就小试一下。

   首先,需要下载jar包,

   dozer.jar :http://dozer.sourceforge.net/downloading.html

   还需要slf4j.jar,commons-lang.jar,commons-beanutil.jar, commons-loggin.jar

3、代码

   两个bean

  1. public class Book {
  2. private String name;
  3. private String author;
  4. public String getName() {
  5. return name;
  6. }
  7. public void setName(String name) {
  8. this.name = name;
  9. }
  10. public String getAuthor() {
  11. return author;
  12. }
  13. public void setAuthor(String author) {
  14. this.author = author;
  15. }
  16. public Book() {
  17. }
  18. }
  1. public class BookVo {
  2. private String namevo;
  3. private String authorvo;
  4. public String getNamevo() {
  5. return namevo;
  6. }
  7. public void setNamevo(String namevo) {
  8. this.namevo = namevo;
  9. }
  10. public String getAuthorvo() {
  11. return authorvo;
  12. }
  13. public void setAuthorvo(String authorvo) {
  14. this.authorvo = authorvo;
  15. }
  16. public BookVo() {
  17. }
  18. }

bookMapper.xml配置文件,用来对DozerBeanMapper进行设置。

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <mappings xmlns="http://dozer.sourceforge.net"
  3. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  4. xsi:schemaLocation="http://dozer.sourceforge.net
  5. http://dozer.sourceforge.net/schema/beanmapping.xsd">
  6. <mapping>
  7. <class-a>test.Book</class-a>
  8. <class-b>test.BookVo</class-b>
  9. <field>
  10. <a>name</a>
  11. <b>namevo</b>
  12. </field>
  13. <field>
  14. <a>author</a>
  15. <b>authorvo</b>
  16. </field>
  17. </mapping>
  18. </mappings>

测试类

    1. package test;
    2. import java.util.ArrayList;
    3. import java.util.List;
    4. import org.apache.commons.logging.Log;
    5. import org.apache.commons.logging.LogFactory;
    6. import org.dozer.DozerBeanMapper;
    7. /**
    8. * 说明:
    9. *
    10. * @author lsr
    11. * @version Aug 17, 2011
    12. */
    13. public class DozerTest {
    14. /**
    15. * @param args
    16. */
    17. public static void main(String[] args) {
    18. testByXml();
    19. }
    20. public static void testByXml() {
    21. Book book = new Book();
    22. book.setAuthor("lsr");
    23. book.setName("dozer demo");
    24. DozerBeanMapper mapper = new DozerBeanMapper();
    25. List<String> mappers = new ArrayList<String>();
    26. mappers.add("bookMapper.xml");
    27. mapper.setMappingFiles(mappers);
    28. BookVo vo = new BookVo();
    29. mapper.map(book, vo);
    30. System.out.println("book's name:" + book.getName());
    31. System.out.println("bookVo's name:" + vo.getNamevo());
    32. }
    33. }

dozer-初识的更多相关文章

  1. Android动画效果之初识Property Animation(属性动画)

    前言: 前面两篇介绍了Android的Tween Animation(补间动画) Android动画效果之Tween Animation(补间动画).Frame Animation(逐帧动画)Andr ...

  2. Dozer扫盲级教程

    前言 这篇文章是本人在阅读Dozer官方文档(5.5.1版本,官网已经一年多没更新了)的过程中,整理下来我认为比较基础的应用场景. 本文中提到的例子应该能覆盖JavaBean映射的大部分场景,希望对你 ...

  3. 初识Hadoop

    第一部分:              初识Hadoop 一.             谁说大象不能跳舞 业务数据越来越多,用关系型数据库来存储和处理数据越来越感觉吃力,一个查询或者一个导出,要执行很长 ...

  4. python学习笔记(基础四:模块初识、pyc和PyCodeObject是什么)

    一.模块初识(一) 模块,也叫库.库有标准库第三方库. 注意事项:文件名不能和导入的模块名相同 1. sys模块 import sys print(sys.path) #打印环境变量 print(sy ...

  5. 初识IOS,Label控件的应用。

    初识IOS,Label控件的应用. // // ViewController.m // Gua.test // // Created by 郭美男 on 16/5/31. // Copyright © ...

  6. UI篇(初识君面)

    我们的APP要想吸引用户,就要把UI(脸蛋)搞漂亮一点.毕竟好的外貌是增进人际关系的第一步,我们程序员看到一个APP时,第一眼就是看这个软件的功能,不去关心界面是否漂亮,看到好的程序会说"我 ...

  7. Python导出Excel为Lua/Json/Xml实例教程(一):初识Python

    Python导出Excel为Lua/Json/Xml实例教程(一):初识Python 相关链接: Python导出Excel为Lua/Json/Xml实例教程(一):初识Python Python导出 ...

  8. 初识SpringMvc

    初识SpringMvc springMvc简介:SpringMVC也叫Spring Web mvc,属于表现层的框架.Spring MVC是Spring框架的一部分,是在Spring3.0后发布的 s ...

  9. 初识redis数据类型

    初识redis数据类型 1.String(字符串) string是redis最基本的类型,一个key对应一个value. string类型是二进制安全的.意思是redis的string可以包含任何数据 ...

  10. Redis初识、设计思想与一些学习资源推荐

    一.Redis简介 1.什么是Redis Redis 是一个开源的使用ANSI C 语言编写.支持网络.可基于内存亦可持久化的日志型.Key-Value 数据库,并提供多种语言的API.从2010 年 ...

随机推荐

  1. Oracle性能分析3:TKPROF简介

    tkprof它是Oracle它配备了一个命令直插式工具,其主要作用是将原始跟踪文件格文本文件的类型,例如,最简单的方法,使用下面的: tkprof ly_ora_128636.trc ly_ora_1 ...

  2. 小牟Andorid下面MD5具体实现的思路总结

    Android的开发往往需要一定数目demo 从今起MD5一些加密算法提取物 看看是如何实现的 首先,我们必须明确为什么加密? 1 数据安全处理 2 防止数据窃取 3 有效的避免恶意攻击 4 保证文件 ...

  3. Oracle SQL 调优健康检查脚本

    Oracle SQL 调优健康检查脚本 我们关注数据库系统的性能,进行数据库调优的主要工作就是进行SQL的优化.良好的数据架构设计.配合应用系统中间件和写一手漂亮的SQL,是未来系统上线后不出现致命性 ...

  4. 获得span里面价值(在特殊情况下 )

    如何获得A? <div class="warpper"> <span class="content"> A <span>12 ...

  5. Docker安装应用程序(Centos6.5_x64)

    Docker安装应用程序(Centos6.5_x64) Authoer::jom_ch@2014/7/23 Docker官方网站 http://www.docker.com/ 一,安装EPEL 关于E ...

  6. mvc与My97DatePicker插件的结合

    Razor视图引擎与My97DatePicker插件的结合 1 using System; 2 using System.Collections.Generic; 3 using System.Run ...

  7. Windows Phone APP中禁用截图

    原文:Windows Phone APP中禁用截图 Windows Phone 8 有系统自带的截图功能,快捷键:电源键+Win键,可以随意截图. Windows Phone 更新GDR2后新增了一个 ...

  8. 构造activeMQ

    一.添加下列库 而配置的路径 ws2_32.lib;Mswsock.lib;cppunit.lib;libapr-1.lib;libapriconv-1.lib;libaprutil-1.lib;li ...

  9. php异或加密解密算法的实现

    function xor_enc($str,$key) { $crytxt = ''; $keylen = strlen($key); for($i=0;$i<strlen($str);$i++ ...

  10. 如何基于对话框的project基于改变BCG的

    一,stdafx.h 增加在下面的例子.BCGCBProInc.h间接介绍lib.   #include <BCGCBProInc.h> // BCGControlBar Pro #if ...